Noob在这里。我正在学习C.我遇到了这个问题我无法在代码中找到错误/错误,每次打印程序的平均值时2686776无论输入是什么。我正在使用Dev-C ++
#include <stdio.h>
int main () {
int loop, money, total, avg;
total = 0;
loop = 0;
while(loop < 4) {
printf("Money Spent");
scanf("%d", &money);
total = total + money;
loop = loop + 1;
}
avg = total / 4;
printf(" average %d", &avg);
getch();
}
答案 0 :(得分:4)
从&
参数中删除printf
,最好将avg
声明为float
并更改
avg = total / 4;
printf(" average %d", &avg);
到
avg = total / 4.0; // or (float)total / 4;
printf("Average: %f\n", avg);
答案 1 :(得分:4)
您必须从printf语句中删除&
,否则您将打印此变量的地址。
同样avg
是int
所以它不能有十进制数字! (例如,4,5-> 9-> avg = 4)。因此,您必须将其更改为float
或double
答案 2 :(得分:1)
#include <stdio.h>
int main () {
int loop, money, total, avg;
total = 0;
loop = 0;
while(loop < 4) {
printf("Money Spent");
scanf("%d", &money);
total = total + money;
loop = loop + 1;
}
avg = total / 4;
printf("Average %d", avg);
getch();
}
请注意,&amp; avg为您提供了一个索引,该索引是avg的地址,在本例中为2686776.不是平均值。
注意不要将引用内存位置的地址与存储在该位置的值混淆。