2D双for循环不工作



我想将每月商店每天的销售额添加到包含3个总销售额的总数组文件中。因为我需要3个总销售额来比较。

#include <stdio.h>
extern float SalesMonth[3][31]; // the data is in another file
void main()
{
    float average[3], total[3];
    int day, month;
    for ( month = 0; month < 3; month++)
    {
        for ( day = 0; day < 31; day++ )
        {
            total[month] += SalesMonth[month][day];
        }
    printf("%.2fn", total[month]); // displays crazy digits.
    }
}
编译后的结果链接。http://snag.gy/aatxd.jpg

最后一个printf将使用month == 3,因为它刚刚退出循环。这不是你声明的数组的一部分所以它会读取堆栈的一些随机位。试着在循环中移动printf或者正确设置月份。

还必须初始化数组。否则,这些值将是任意的。

还验证SalesMonth实际上具有您期望的数据(您可以在进行时打印它)。

我想这里有个打字错误

float average[3], total[3],;
                          ^^

按如下方式定义数组

float average[3] = { 0.0 }, total[3] = { 0.0 };

也就是说,你需要在使用数组元素之前初始化它们。

而不是这个没有意义的语句

printf("%.2fn", total[month]); 

必须编写一个循环来输出数组中的每个元素。

例如

for ( month = 0; month < 3; month++) printf("%.2fn", total[month]); 

相关内容

  • 没有找到相关文章