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

 我来答
wwwwenwww
推荐于2017-10-13 · TA获得超过589个赞
知道答主
回答量:196
采纳率:100%
帮助的人:147万
展开全部
#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
}
zhangwukun
2019-04-08
知道答主
回答量:3
采纳率:0%
帮助的人:1772
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rgxktk6md
2011-04-20 · TA获得超过1547个赞
知道小有建树答主
回答量:8339
采纳率:0%
帮助的人:2838万
展开全部
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式