c语言改错问题!在线等!!!

输入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);
}

你好!

    程序的错误都改了,你看看吧,功能方面的代码没有修改,只是可以运行了;

    看程序后面的注释部分!

#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;
    float highest();   //函数名和类型直接要空格   highest函数声明
    void input(void);  //函数名和类型直接要空格   input函数声明
    void a_stu(void);  //函数名和类型直接要空格   a_stu函数声明
    void a_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;
    float s=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;
    float high=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);
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答