标题:实现效果和想象中的不一致,求大神指点【二维数组+for嵌套循环】
只看楼主
a75692074
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2018-7-20
结帖率:100%
已结贴  问题点数:20 回复次数:6 
实现效果和想象中的不一致,求大神指点【二维数组+for嵌套循环】
程序代码:
#include <iostream>
using namespace std;
const int Cities = 5; 
const int Years = 4;

int main()
{
    const char * cities[Cities] = // array of pointers 
    {                              // to 5 strings
        "Gribble City",
        "Gribbletown",
        "New Gribble",
        "Gribble vista"
    };

    int maxtemps[Years][Cities] = // 2-D array 
    {
        {96, 100, 87, 101, 105}, // values for maxtemps[0]
        {96, 98, 91, 107, 104}, // values for maxtemps[1]
        {97, 101, 93, 108, 107}, // values for maxtemps[2]
        {98, 103, 95, 109, 108} // values for maxtemps[3]
    };
    
    cout << "Maximum temperatures for 2008 - 2011\n\n";
    for (int city = 0; city < Cities; ++city)
    {
        cout << cities[city] << ":\t";
        for (int year = 0; year < Years; ++year)
            cout << maxtemps[year][city] << "\t";
        cout << endl;
    }
        // cin.get();
    return 0;
}


想象中的实现效果:
Maximum temperatures for 2008 - 2011

Gribble City:96
Gribbletown: 98
New Gribble: 93
Gribble vista:109
. . .
(省略的大神们应该能知道我想的是什么吧!)


现实中的实现效果:
Maximum temperatures for 2008 - 2011

Gribble City: 96  100  87  101   105
Gribbletown:  96  98   91  107   104
New Gribble:  97  101  93  108   107
Gribble vista:98  103  95  109   108

(实现效果是很整齐的噢)

求大神指点一下为什么实现效果是这样!
感谢!!!

[此贴子已经被作者于2018-12-31 20:48编辑过]

搜索更多相关主题的帖子: 效果 for int values cout 
2018-12-31 20:44
rohalloway
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:97
专家分:405
注 册:2018-9-28
得分:10 
在我这里是整齐的没有问题

你也可以试试cout << cities[city] << ":\t\t";

或者用函数补空格应该是最齐的
2018-12-31 21:46
a75692074
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2018-7-20
得分:0 
回复 2楼 rohalloway
你没看懂。
2018-12-31 23:42
a75692074
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2018-7-20
得分:0 
回复 楼主 a75692074
我问的是为什么实现效果和我想象中的不一样
2018-12-31 23:43
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:10 
可能内循环要加判断吧,比如year==city

剑栈风樯各苦辛,别时冰雪到时春
2019-01-01 00:08
ZJYTY
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:92
专家分:700
注 册:2018-12-20
得分:0 
for (int city = 0; city < Cities-1; ++city)
    {
        cout << cities[city] << ":\t";
        for (int year = 0; year < Years; ++year)
        {
            if (city == year)
                cout << maxtemps[year][city] << "\t";
        }
        cout << endl;
    }

/*
至于你所贴出的现实中的实现效果,可以分析一下自己的程序。
1:const char * cities[Cities]中只有四个元素,下面操作到了第五个,应该会崩溃。
2:内层循环输出的是一列,并不是一行。

你确认自己运行的代码是这样的?
*/

-------------------------------若有不当之处,敬请谅解-------------------------------
2019-01-02 17:35
a75692074
Rank: 1
等 级:新手上路
威 望:1
帖 子:48
专家分:0
注 册:2018-7-20
得分:0 
回复 6楼 ZJYTY
是的,谢谢啦
2019-01-12 22:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492435-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.254346 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved