关于C语言函数调用数组的问题

#include<stdio.h>

void function_a(int stu_score[5][3],float av_score[5],float score[3])

{
int i,j;
float sum=0;

for(i=0;i<=4;i++)
{
for(j=0;j<3;j++)
sum+=stu_score[i][j];
av_score[i]=sum/5;
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
sum+=stu_score[j][i];
score[i]=sum/5;
}
}

main()
{
void function_a();
int i;
char *name[5];
float av_score[5];
float score[3];
int stu_score[5][3];

for(i=0;i<=4;i++)
{
printf("姓名%d:",i+1);scanf("%c\t",name[i]);
printf("成绩1:");scanf("%d\t",stu_score[i][0]);
printf("成绩2:");scanf("%d\t",stu_score[i][1]);
printf("成绩3:");scanf("%d\t",stu_score[i][2]);
}
function_a(stu_score,av_score,score);
for(i=0;i<3;i++)
{
printf("成绩%d的平均分:%d",i+1,score[i]);
}
for(i=0;i<5;i++)
{
printf("%c的平均成绩:%d",*name[i],av_score[i]);
}
}
为什么会出现function_a' : function does not take 3 parameters的问题

因为main()函数中的function_a函数声明和实际的情况不一样,真实情况是该函数有三个参数,而你却将其声明为没有参数,所以在调用时,传入参数会有警告。

由于function_a的定义在main()之前,所以去掉主函数中的声明即可,或者将声明改为正确形式。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-07
同意楼上观点,另外,如果我没记错,数组作为函数参数的时候不写长度的
相似回答