用do...while语句编写程序,最好是DevC++?

接收一些用户的分数,输入的是999则退出程序运行,如果输入的是大于等于0小于等于100的分数,认为是有效分数,计算并输出有效分数总和及平均值

#include <stdio.h>

int main()

{

int n=0,d;

float s=0;

do

{

if(scanf("%d",&d)!=1)

break;

if(d>=0&&d<=100)

{

n++;

s+=d;

}

}while(d!=999);

printf("和:%.1f,平均值:%.1f\n",s,(n?s/n:0));

return 0;

}

运行结果截图:

追问

想再问一下 这样写对吗 如果要用双精度浮点数的话

追答

错误很多

追问

初学,不好意思;;
想问一下if(scanf("%lf",&d)!=1)、(n?s/n:0),这两个是什么意思
如果题目要求是输入一些double值和输出两个double数,一个是总成绩一个是平均成绩,这样应该怎么修改呢?
可以讲一下思路吗?感谢解答!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-09
#include <stdio.h>
int main() {
int cnt = 0;
double d = 0, avg = 0, sum = 0;
do{
scanf("%lf", &d);
if(0<=d&&d<=100) {
sum += d;
avg = sum/++cnt;
}
} while(d<999)
printf("和:%.1f,平均值zhi:%.1f\n",sum, avg);
return 0;
}
相似回答