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

#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++;陷入死循环。

修改:

#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。计算和及平均值时,不计入这个负数。

温馨提示:答案为网友推荐,仅供参考