c - 用 C 编写程序,通过 for 循环查找用户定义的平均值

标签 c

平均调用未输出正确的平均值。有人可以帮助我找出我做错了什么吗?

#include <stdio.h>
void main()
{

    int num=0;
    int counter=0;
    int sum=0;
    int i=0;
    float avg=0;

    printf("Numver of values to be entered: \n");
    scanf("%d", &counter);

    for (num=1;num<=counter;num++)
    {
        printf("Please enter value %d :",num);
        scanf("%d",&i);
        sum +=i;
    }
    avg=sum/num;//This portion isnt working and I cant figure out why
    printf("The average is : %f\n",avg);
}

我得到的输出。

/workspace $ gcc -o AvgFor AvgFor.c

/工作区 $ ./AvgFor

要输入的值的数量: 2 请输入值 1 :10 请输入值 2 :10 平均值为:6.000000

我期望的是 10 + 10 = 20。那么 20/2=10

最佳答案

当您计算 sum/num 时,两个参数都是 int 类型,因此执行整数除法,这意味着任何小数部分都会被截断。这发生在将结果分配给 avg 之前。

您需要将至少一个参数转换为 float 才能执行浮点除法:

avg = (float)sum/num;

关于c - 用 C 编写程序,通过 for 循环查找用户定义的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53121630/

相关文章:

c++ - Visual Studio 2010 或 C/C++ 性能监视器

将字符串中的字符转换为整数以进行乘法

c - 使用 scanf 进行输入读取挂起

c - 检查输入的值是否为整数

c - fread 读取的安全最大记录数

python - 无法从 C 导入 numpy

C通用链表

无法在打印超过 80 个字符的输入行的程序中找到错误

Windows 和 Linux 上的 C 文件锁定行为

c - getchar/fgetc和putchar/fputc中的int和char之间的区别?