c语言运行时按回车没反应,只是换行了?
发布网友
发布时间:2023-02-26 05:48
我来回答
共1个回答
热心网友
时间:2024-02-27 01:09
逻辑错误。
while(x>=0),输入的x为非负整数时,一直执行循环体内语句s=s+x;k++;陷入死循环。
修改:
#include <stdio.h>
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;
}
//运行示例:
追问那每次输入都要加个-1吗?
追答不是。是连续输入,当输入某个负数时结束输入,并不限定一定是-1。计算和及平均值时,不计入这个负数。