这是用visual studio编写的代码

    #include <stdio.h>

    void main()
    {
      int n,i,num,s;
      float av;
    printf("How Many numbers?");
    scanf("%d",&n);
    s=0;

    for(i=1;i<=n;i++){

        printf("enter number #%d  : ",i);
        scanf("%d", &num);

        s=s+num;

    }

    av=s/n;
        printf("The Average is %f",av);
    getchar();
    }

我真的不知道为什么它没有显示正确的平均值:/

最佳答案

问题在于:av=s/n;您正在将整数除法的结果存储到浮点中,会有一些数据丢失。一个简单的解决方案:使用类型转换->
av=(float)s/n;

av=s/(float)n;
另一种选择:将sn设为浮点。

关于c - 我的程序没有显示正确的平均值,只给我十进制的零(编程新手),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29989799/

10-10 12:52