我将在标准“我是C ++新手”声明的前言。这是我第一次使用数组并遇到一些困难。
我一般都了解数组。我也理解初始化数组。我正在努力的是从我的3D阵列打印特定的行/列。基本上,我们有三个月的大量高低温。目标是根据用户请求打印阵列的各种子集。 Here是我程序的shell。我为初学者输入了仅3天的数据。
提供了计算平均值,最大值和最小值的函数。也许我还没有完全理解这些功能是如何运作的。
我从这样的事情开始:
case 'A':
cout << "Which month? ('J' for June, 'U' for July, 'A' for Aug)" << endl;
cin >> y;
switch (y)
{
case 'J':
cout << "The average for June was " << for (i=0; i<DAY; i++)
{
for (j=0; j<1; j++)
{
for (k=0; k<XTR; k++)
{
average_array[3][0][2];
}
}
} << endl; break;
我希望调用函数average_array来迭代6月份的所有(3)天,然后打印结果。
我也试过替换像:
这样的东西average_array[DAY][MONTH][XTR];
或
for (i=0; i<30; i++)
{
for (j=0; j<1; j++)
{
for (k=0; k<2; k++)
非常感谢任何建议!显然,我完全以错误的方式解决这个问题,而我只是不了解如何在数组中引用特定的值集。我们的教科书最接近解释这是迭代1D和2D阵列并打印结果。这是一个小任务,但理解这是完成我们下一个(也是最后一个)大型项目的关键。
答案 0 :(得分:1)
for循环不能用作cout的输入。你应该像这样分别对每个数组值进行cout:
cout << "The average for June was ";
for (i=0; i<DAY; i++) {
for (j=0; j<1; j++){
for (k=0; k<XTR; k++){
cout << average_array[3][0][2];
//to make it a little nicer, use this
//cout << ", "
}
}
}
cout << endl;
但是,即使有上述修复,也存在一些问题:
这只会多次打印出average_array[3][0][2]
的值。如果您想打印出数组中的每个值,请将[3][0][2]
更改为[i][j][k]
。
您的for (j=0; j<1; j++)
只会循环遍历j的一个值,即0.没有理由进行此循环。
答案 1 :(得分:1)
以下语句定义了一个(C风格)数组数组的整数数组:
int a[A][B][C];
变量 a 现在指的是由数组数组组成的数组。
循环使用所有值确实是:
for(int i=0;i<A;++i){
for(int j=0;j<B;++j){
for(int k=0;k<C;++k){
// do whatever....
}
}
}
如果您只想要一个特定的索引来说第二个&#34;循环&#34;,请删除该循环,例如:
for(int i=0;i<A;++i){
for(int k=0;k<C;++k){
std::cout << a[i][2][k];
}
}