输入10个学生5门课的成绩,分别用函数实现下列功能:
①计算每个学生平均分;
②计算每门课的平均分;
③找出所有50个分数中最高的分数所对应的学生和课程。
以下是我写的
#include<stdio.h>
#define A 10
#define B 5
float scores[A][B];//全局数组
float averstu[A],avercour[B];//全局数组
int x,y;//全局变量
int main()
{
int i,j;
float h;
floathighest();//highest函数声明
voidinput(void);//input函数声明
voida_stu(void);//a_stu函数声明
voida_cour(void);//a_cour函数声明
input();//input函数调用,输入成绩
a_stu();//a_stu函数调用,计算每个学生平均成绩
a_cour();//a_cour函数调用,计算5门课平均成绩
for(i=0;i<A;i++)
{
printf("studentnumber:%2d",i+1);
for(j=0;j<B;j++)
printf("%8.2f\n",scores[i][j]);//输出学生各门课成绩
printf("%8.2f\n",averstu[i]);//输出每个学生平均成绩
}
printf("averagescores:\n");
for(j=0;j<B;j++)
printf("%8.2f\n",avercour[j]);//输出5门课平均成绩
h=highest();//highest函数调用,求出最高分和学生号码和科目
printf("highest:%8.2fnumber:%2d course:%2d",h,x,y);//分别输出最高分 学生号码 成绩
return 0;
}
void input(void)//输入学生成绩的函数的定义
{
int i,j;
for(i=0;i<A;i++)
{
printf("pleaseinput student %2d's scores:\n",i+1);
for(j=0;j<B;j++)
scanf("%f",&scores[A][B]);
}
}
void a_stu(void)//计算每个学生平均成绩的函数的定义
{
int i,j;
floats=0;
for(i=0;i<A;i++)
{
for(j=0;j<B;j++)
s+=scores[i][j];
averstu[i]=s/5;
}
}
void a_cour(void)//计算5门课的平均成绩的函数的定义
{
int i,j;
float s;
for(j=0;j<B;j++)
{
s=0;
for(i=0;i<A;i++)
s+=scores[i][j];
avercour[j]=s/(float)B;
}
}
float highest()//求最高分以及其学生号码、科目的函数的定义
{
int i,j;
floathigh=scores[0][0];
for(i=0;i<A;i++)
for(j=0;j<B;j++)
if(scores[i][j]>high)
{
high=scores[i][j];
x=i+1;
y=j+1;
}
return(high);
}
你好!
程序的错误都改了,你看看吧,功能方面的代码没有修改,只是可以运行了;
看程序后面的注释部分!