C语言程序出错
#include <stdio.h>
void main()
{void avsco(float *,float *);
void avcour1(char( * )[10],float *);
void fali2(char course[5][10],int num[],float * pscore,float aver[4]);
void good(char course[5][10],int num[4],float *pscore,float aver[4]);
int i,j,*pnum,num[4];
float score[4][5],aver[4],*pscore,*paver;
char course[5][10],(*pcourse)[10];
printf( "input course:\n ");
pcourse=course;
for(i=0;i <5;i++)
scanf( "%s ",course[i]);
printf( "input no. and scores:\n ");
printf( "no. ");
for(i=0;i <5;i++)
printf( ",%s ",course[i]);
printf( "\n ");
pscore=&score[0][0];
pnum=&num[0];
for(i=0;i <4;i++)
{scanf( "%d ",pnum+i);
for(j=0;j <5;j++)
scanf( "%f ",pscore+5*i+j);
}
paver=&aver[0];
printf( "\n\n ");
avsco(pscore,paver);
avcour1(pcourse,pscore);
printf( "\n\n ");
fali2(pcourse,pnum,pscore,paver);
printf( "\n\n ");
good(pcourse,pnum,pscore,paver);
}
void avsco(float pscore,float paver)
{int i,j;
float sum,average;
for(i=0;i <4;i++)
{sum=0.0;
for(j=0;j <5;j++)
sum=sum+(*(pscore+5*i+j));
average=sum/5;
*(paver+i)=average;
}
}
void avcour1(char(*pcourse)[10],float pscore)
{int i;
float sum,average1;
sum=0.0;
for(i=0;i <4;i++)
sum=sum +( * (pscore+5*i));
average1=sum/4;
printf( "course 1:%s,average score:%7.2f\n ",*pcourse,average1);
}
void fali2(char course[5][10],int num[],float*pscore,float aver[4])
{int i,j,k,label;
printf( " ===========student who is fail =======\n ");
printf( "no. ");
for(i=0;i <5;i++)
printf( "%11s ",course[i]);
printf( " average\n ");
for(i=0;i <4;i++)
{label=0;
for(j=0;j <5;j++)
if(*(pscore+5*i+j) <60.0) label++;
if(label> =2)
{printf( "%d ",num[i]);
for(k=0;k <5;k++)
printf( "%11.2f ",*(pscore+5*i+k));
printf( "%11.2f\n ",aver[i]);
}
}
}
void good(char course[5][10],int num[4],float *pscore,float aver[4])
{int i,j,k,n;
printf( " ===========students whose socre is good=========\n ");
printf( "no. ");
for(i=0;i <5;i++)
printf( "%11s ",course[i]);
printf( " averge\n ");
for(i=0;i <4;i++)
{n=0;
for(j=0;j <5;j++)
if(*(pscore+5*i+j)> 85.0)n++;
if((n==5)||(aver[i]> =90))
{printf( "%d ",num[i]);
for(k=0;k <5;k++)
printf( "%11.2f ",*(pscore+5*i+k));
printf( "%11.2f\n ",aver[i]);
}
}
}
四个错误,avsco和avcour1函数出错,不知道问题在哪,请大家帮忙!
[解决办法]
你这啥玩意啊? 改都没法该
比如声明的时候是:
void avsco(float *,float *);
实现的时候确变成
void avsco(float pscore,float paver),也就是成了:void avsco(float ,float )
要改的话恐怕全部都要重新写