c语言运行时按回车没反应,只是换行了?

2024-11-22 01:04:06
推荐回答(1个)
回答(1):

逻辑错误。

while(x>=0),输入的x为非负整数时,一直执行循环体内语句s=s+x;k++;陷入死循环。

修改:

#include 
int main()
{
int k=0,x=0,s=0;//x赋初始值0
float avg=0; 
//scanf("%d",&x);//去掉此句
while(x>=0)
{
scanf("%d",&x);//移动到此处
if(x>=0)//添加此条语句
{//添加大括号
s=s+x;
k++;
}//添加大括号
}
if(k>0)avg=(float)s/k;
printf("成绩之和:%d,平均分:%.2f",s,avg);
return 0;
}

//运行示例: