c语言……从键盘输入一批学生的成绩,当输入一个负数时结束输入,然后计算这批成绩的总分和平均分

如题所述

#include <stdio.h>
main()
{
double N,M,one;//one记录每次输入的成绩,N记录学生数,M记录总分,使用double记录允许分数为小数
N=0;//学生数初始为0
M=0;//总分初始为0
scanf("%lf",&one);//读入第一个成绩,或表示结束的负数
while(one>=0)//直到读入的数是负数时停止
{
N++;//人数加1
M=M+one;//总分加上该生分数
scanf("%lf",&one);//读入下一个分数,或表示结束的负数
}
printf("总分:%.2lf\n",M);//输出总分,保留两位小数,(可通过改变.后的数字改变保留位数)
if(N>0)printf("平均分:%.2lf\n",M/N);//人数不为零,输出平均分M/N,保留两位小数
else printf("平均分:0\n");//人数,为零,输出平均分0
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-08
#include<stdio.h>
int main()
{ //首先,i因为是整数所以可以用整型,其他值可能出现小数所以用浮点型
//所有变量全部初始化,否则编译器可能会报错
int i = 0;
float score = 0, sum = 0, aver = 0;
while (score >= 0) {
printf("请输入成绩(0--100), 其它值结束: ");
scanf("%f", &score);
if (score > 100) {
printf("Wrong input\n");
continue; //当输入错误值时,为了不使错误值影响以后的计算,直接跳到循环开始
}
else if (score < 0)
continue; //当输入score的值为负数时,跳过下一条else语句,同时退出循环,输出结果
else {
sum += score; //将输入的score累加
}
i++; //对每次循环计数,相当于对输入的成绩计数
}
aver = sum / i; //计算平均数
printf("sum: %f", sum);
printf("aver: %f", aver);
return 0;
}
第2个回答  2011-04-20
num=1,p=0,n=0;
while(num!=0)
{ scanf("%d",&num);
if(num>0) p++;
if(num<0) n++;
}
printf("positive number:%d negative number:%d ",p,n);
return 0;
}