在C中打印错误的平均值

时间:2014-12-31 22:49:43

标签: c

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();
}

3 个答案:

答案 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语句中删除&,否则您将打印此变量的地址。

同样avgint所以它不能有十进制数字! (例如,4,5-> 9-> avg = 4)。因此,您必须将其更改为floatdouble

答案 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.不是平均值。

注意不要将引用内存位置的地址与存储在该位置的值混淆。