C语言 输入10个学生5门课的成绩,用函数求出平均成绩在90分以上或全部课成绩在85分以上的学生

1.我只要用C做的;
2.旁边最好注解下是做什么用的;
3.要简单的,不要太复杂

谢谢了
要用函数做啊!!

答案如下:
#include<stdio.h>

void f(double a[10][5]);/*找出满足要求的学生并输出*/

void main()
{
double a[10][5];
int i,j;
printf("输入10个学生的5门课成绩\n");

for(i=0;i<10;i++)
{
printf("第%d个",i+1);
for(j=0;j<5;j++)
scanf("%lf",&a[i][j]);
}

printf("平均成绩在90分或全部课成绩在85分以上的学生有:\n");
f(a);
}

void f(double a[10][5])
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<5;j++)
if(a[i][j]<85)
break;
if(j==5) /*如果全部成绩在85以上*/
printf("第%d个\n",i+1);
if(j<5) /*如果平均成绩在90以上*/
{
double sum=0,ave=0;
for(int k=0;k<5;k++)
sum+=a[i][k];
ave=sum/5;
if(ave>=90)
printf("第%d个\n",i+1);
}
}
}

验证通过!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-26
#include <stdio.h>
#include <stdlib.h>

int good(float arr[][5])
{float avr;
int i,j,flag,num=0;//num为符合条件的人数
for(i=0;i<10;i++)
{avr=0;//计算个人总成绩用
flag=1;//各科超过85标志
for(j=0;j<5;j++)
avr+=arr[i][j];//求出个人总成绩
for(j=0;j<5;j++)
if(arr[i][j]<85){flag=0;break;}//有不到85的则标志置0
avr/=5; //avr变成平均分
if(avr>=90 || flag==1)num++;//有符合条件的则总数加一
}
return num;
}
int main()
{float score[10][5];
int i,j,number;
for(i=0;i<10;i++)
{printf("请输入第%d个学生的成绩:\n",i+1);//提示输入
for(j=0;j<5;j++)
{printf("第%d门:",j+1);
scanf("%f",&score[i][j]);
}
}
number=good(score);//求出个数
printf("平均成绩在90分以上或全部课成绩在85分以上的学生个数为%d\n",number);//输出
system("pause");
return 0;
}
第2个回答  2008-12-26
main()
{
int i,j,sum=0,count=0;//count计大于90的学生个数
int soce[10][5];//定义一个二维数组10表示十个学生5代表五门功课
for(i=0;i<10;i++){//依次给给十个学生的五门功课分数
for(j=0;j<5;j++){
scanf("%d",soce[i][j]);
}
}
for(i=0;i<10;i++){++){
for(j=0;j<5;j++){//依次给给十个学生的五门功课分数的总分
sum+=soce[i][j];
}
if(sum/5>90)//求五门功课是否大于90
{
count++;//是的话++;
}
}
printf("%d",count);
getch();
}
第3个回答  2008-12-26
void process()
{
int i,j; //i、j是循环变量
for(i=0;i<10;i++)
if(score[i][1]>85&&score[i][2]>85&score[i][3]>85&&score[i][4]>85&&score[i][5]>85) print("%d ",i+1); //如果该学生每一科成绩都在85分以上,则输出该学生的号码(即输入时的顺序号码)
else {for(j=0;j<5;j++)
ave+=score[i][j];
ave/=5; //计算出平均分
if(ave>90) print("%d ",i+1) //如果该学生平均分在90分以上,则输出该学生的号码
}
}
void main()
{
int a,b,ave=0; //a、b是循环变量,ave是计算当前学生的平均分
int score[10][5]; //存放10个学生的5门成绩
for(a=0;a<10;a++)
for(b=0;b<5;b++)
scanf("%d",&score[a][b]); //读入成绩
process(); //执行处理函数
}
第4个回答  2008-12-26
不会。。
相似回答