求解,帮忙看一下代码有没有什么逻辑上和语法上的错误。

struct zg
{
int num;
char name[20];
char sex;
int age;
char xl[30];
int wage;
char addr[30];
char tel[20];
}zg[100];
int m;

void paixu()
{
struct zg hc[100],t;
int i=0,j;
FILE *fp;
if((fp=fopen("zg_list.txt","rb+"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
else
{
do
{
fread(&hc[i],sizeof(struct zg),1,fp);
i++;
}
while(feof(fp)==0);
}
for(i=0;i for(j=0;j if(hc[j].num>hc[j+1].num)
{
t=hc[j];
hc[j]=hc[j+1];
hc[j+1]=t;
}
for(i=0;i<m;i++)
if(fwrite(&zg[i],sizeof(struct zg),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
m表示输入的人数
这是个排序调用函数,调用后没有用,输出的信息还是原来的样子。
请帮忙看看有什么错误。

1个回答

for(i=0;i for(j=0;j if(hc[j].num>hc[j+1].num)
这里写错了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!