编程C语言 输入n个学生成绩,计算他们的平均值并输出所有高于平均的学生成绩。 求解 !!

如题所述

思路:定义一个数组用于保存n个学生的成绩,输入他们的成绩的时候统计总分,并计算出他们的平均分,在来一个循环,让n个学生的成绩分别和平均分进行比较,满足大于平均分则输出
//c语言实现
#include<stdio.h>
#define MAX 100
int main()
{
int n,i;
double score[MAX],average,sum=0;
printf("\n输入学生的个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("输入第%d个学生的成绩:",i+1);
scanf("%lf",&score[i]);
sum+=score[i];
}
printf("\n===各学生成绩如下=====\n");//打印出学生的成绩情况
for(i=0;i<n;i++)
{
printf("%d个学生的成绩: %.2f\n",i+1,score[i]);
}
printf("\n============\n");
average=sum/n;//计算学生平均分
printf("\n%d个学生的平均成绩为:%.2f\n",n,average);
printf("\n=====大于平均成绩的学生成绩如下======\n");
//输出大于平均分的学生成绩情况
for(i=0;i<n;i++)
{
if(score[i]>average)
printf("%d个学生的成绩: %.2f\n",i+1,score[i]);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-13
#include “stdio.h
#define MAX 100
void main()
{
int mark[MAX],sum=0,mark=0,j=0,aver=0;
printf("请输入学生成绩,输入负数结束成绩添加");
for(int i=0;i<MAX;i++)
{
scanf("%d",&mark);
if(mark>=0)
{
sum=sum+mark;
j++;
}
else
break;
}
aver=sum/j;
printf("平均数为%d\n",aver);
for(int i=0;i<j,i++)
{
if(mark[i]>aver)
printf("学生%d======%d\n",i,mark[i]);
}
}本回答被提问者和网友采纳
第2个回答  2019-07-15
1 指针
#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]);
}
2.
#include<stdio.h>
#define N 10
main()
{int i,max=0,g=0,s=0,a[N];double v;
for(i=0;i<N;i++)
{scanf("%d",a+i);s=s+a[i];if(a[i]>=a[max])max=i;}
v=s/N;
for(i=1;i<=N;i++)
if(a[i]>v)
g++;
printf("大于平均成绩%.2lf有%d人其中最高分%d",v,g,a[max]);
}
第3个回答  2011-06-14
循环加 IF 就行了啊
相似回答