看看这段代码如何改进


/*用户输入一串正整数,以-1结束输入,计算并输出平均数及用户输入了多少个数字 
*/
#include
int main()

{
    int n,count=0,sum=0;
    while(n!=-1)
    {
        scanf("%d",&n);
        count++;
        sum+=n;
    }
    printf("%f\n",sum*1.0/count);
    printf("%d",count);
    return 0;
} 

这段程序运行起来为什么还会把最后输入的-1读进去呢,该怎么改进呢?

加一个条件判断,当等于-1,就break,不执行

#include <stdio.h>

int main()
{
    int n, count = 0, sum = 0;
    while (n != -1)
    {
        scanf("%d", &n);

        if (n == -1)
            break; 
        else
        {
            count++;
            sum += n;
        }                    
    }
    printf("%f\n", sum * 1.0 / count);
    printf("%d", count);
    return 0;
}

int main()
{
    int n,count=0,sum=0;
    scanf("%d",&n);
    while(n!=-1)
    {
        count++;
        sum+=n;
        scanf("%d",&n);
    }
    printf("%f\n",sum*1.0/count);
    printf("%d",count);
    return 0;


img

img