关于函数调用和数组....
8、 5个学生,4门课,要求主函数分别调用各函数实现(下文中的成绩,序号,课程名均由用户在程序运行时输入):(1) 找出成绩最高的学生序号和课程。
(2) 找出不及格课程的学生序号及其各门课的全部成绩。
(3) 求全部学生各门课程的平均分数,并输出。
这是作业,我的程序是这样写的(着实没弄懂数组和函数调用,请各位不要嫌烦哈)
#include
void input(void);
int main()
{
int arr[5][5];
char name[10];
int i;
printf("输入项目栏名称:");
gets(name);
for(i=0;i<5;i++)
{
printf("按照项目栏分别输入%d学生的资料:",i+1);
scanf("%d%d%d%d%d",&arr[i][0],&arr[i][1],&arr[i][2],&arr[i][3],&arr[i][4]);
}
max(arr,name);
unpass(arr,name);
return 0;
}
/*找出成绩最高的学生序号和课程*/
void max(int arr[5][5],char name[10])
{
int j,k,l,num,max;/*k,j为计数器,l代表的学号的位置,num代表科目的位置*/
max=arr[1][1];/*假设arr[1][1]为最大值*/
for(j=1;j<5;j++)
for(k=1;k<5;k++)
if(arr[j][k]>max)
{
arr[j][k]=max;
l=j;
num=k;
}
printf("最高分是%d,科目为%d",arr[l][num],name[num]);
}
/*找出不及格课程的学生序号及其各门课的全部成绩*/
void unpass(int arr[5][5],char name[10])
{
int i,j;
for(i=1;i<5;i++)
for(j=1;j<5;j++)
if(arr[i][j]<60)
{
printf("不及格课程学号为%d,%d成绩为%d,%d成绩为%d,%d成绩为%d,%d成绩为%d",arr[i][0],name[1],arr[i][1],name[2],arr[i][2],name[3],arr[i][3],name[4],arr[i][4]);
}
}
/*求全部学生各门课程的平均分数,并输出*/
void ave(int arr[5][5],char name[10])
{
int i,j,sum=0,ave;
for(j=1;j<5;j++)
for(i=1;i<5;i++)
{
sum=sum+arr[i][j];
ave=sum/5;
}
}
编译器报错
E:\示例\chapter5_8\chapter5_8.c(15) : warning C4013: 'max' undefined; assuming extern returning int
E:\示例\chapter5_8\chapter5_8.c(16) : warning C4013: 'unpass' undefined; assuming extern returning int
E:\示例\chapter5_8\chapter5_8.c(22) : error C2371: 'max' : redefinition; different basic types
E:\示例\chapter5_8\chapter5_8.c(38) : error C2371: 'unpass' : redefinition; different basic types
Error executing cl.exe.