从键盘上输入n个学生成绩,求平均分且输出高于平均分的人数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个回答  2008-11-13
有人写了我就不写了 楼上哥们写的就能用
第2个回答  2008-11-15
#include<stdio.h>
main()
{
float aver,s=0;
int n,i;
printf("please input the number n\n");
scanf("%d",&n);
float grade[n];
for (i=1;i<=n;i++)
{
printf("please input student %d's grade\n",i);
scanf("%f",&grade[i]);
}
for(i=1;i<=n;i++)
s=s+grade[i];
aver=s/n;
printf("the average grade is %f\n",aver);
for (i=1;i<=n;i++)
{
if (grade[i]>=aver)
printf("student %d's grade is above average,\nthe grade is %2f\n",i,grade[i]);
}
}
呵呵,调试的结果正确。。。。。
第3个回答  2019-07-15
#include<stdio.h>
#define N 10
main()
{int i,num=0,max=0;float s=0,v,score[N],*p;
for(p=score,i=0;i<N;i++)
{scanf("%f",p+i);
if(*(p+i)>=score[max])
max=i;
s+=*(p+i);
}
v=s/N;
for(p=score,i=0;i<N;i++)
if(*(p+i)>v)
num++;
printf("average=%.1f,num=%d,%.1f\n",v,num,score[max]);
}
第4个回答  2008-11-13
题目太难,不会做
相似回答