#include<stdio.h>
int main()
{
int k=0,x,s=0;
float avg=0;
scanf("%d",&x);
while(x>=0)
{
s=s+x;
k++;
}
if(k>0)avg=(float)s/k;
printf("成绩之和:%d,平均分:%.2f",s,avg);
return 0;
}
逻辑错误。
while(x>=0),输入的x为非负整数时,一直执行循环体内语句s=s+x;k++;陷入死循环。
修改:
//运行示例:
追问那每次输入都要加个-1吗?
追答不是。是连续输入,当输入某个负数时结束输入,并不限定一定是-1。计算和及平均值时,不计入这个负数。