我想将每月商店每天的销售额添加到包含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]);