想询问一个报错,但不清楚原因,基于VC++
#include <stdio.h>#include <string.h>
#include <stdlib.h>//exit(0)
void sort(struct bz a[],int n,int m);
struct bz
{
char no[6];
char name[10];
int cj[5];//total 也在
};
void main()
{
FILE *fp;
struct bz a[10000];
int i,j,k,n,t,m,e;
int b[10000];
fp=fopen("fi.txt","r");
if(fp==NULL)
{
printf("File open error.\n");
exit(0);
}
i=0;
while(!feof(fp))
{
fscanf(fp,"%s %s",a[i].no,a[i].name);//》》》》》空格???
for(k=0,a[i].cj[5]=0;k<4;k++){ //0,1,2,3
fscanf(fp,"%d",&a[i].cj[k]);
a[i].cj[4]+=a[i].cj[k]; //4==总成绩
}
i++;
}
k=i;//k个人
fclose(fp);
//成绩读入完成
for(j=0;j<5;j++){//01234.4是总成绩
sort(a,k,j);//成绩比较,k是送入多少个人,j是哪一科
b[j]=a[599].cj[j];//最后一个
if(j<4){
printf("科目%d的调档线是%d\n",j+1,b[j]);
}else
printf("总分分数线是:%d\n",b[j]);
}
int sort(struct bz a[ ],int n,int m)//用来比较单独一科,n是人数,m是第几科 --------------报错;error C2143: syntax error : missing ';' before 'type'
{
//struct bz b[1000];
//int i,j;
for(i=0;i<n-1;i++){
for(j=i+1;j<n-2;j++)//next one
if(a[i].cj[m]<a[j].cj[m]){
a[n]=a[i];//用n作为临时变量
a[i]=a[j];
a[j]=a[n];
/* b[i]=a[i];
a[i]=a[j];
a[j]=b[i];*/
//a[i]<->a[j]
}
}
}
请问是为什么呢?