问题描述
- c语言中的排序问题,搞蒙了!
-
void sortbyname(){int i,j;
struct student temp;
FILE fp; fp=fopen ("D:student.txt","rb+");
for (i=0;i<num;i++)
fread(&student[i],sizeof(struct student),1,fp); fclose(fp);system("cls");
printf("tt************** 下面是通讯录所有信息************n");
printf("n 学号 姓名 年龄 性别 出生年月 地址 电话 E-mail n");
for (i=0;i
printf("nn");
for(i=0;i
for(j=0;j0) {temp=student[j];student[j]=student[j+1];
student[j+1]=temp; }
printf("tt*************** 下面是排序后通讯录所有信息************n");
printf("n 学号 姓名 年龄 性别 出生年月 地址 电话 E-mail n");
for (i=0;i<num;i++) printf("t%st%st%st%st%st%st%st%sn",student[i].num,student[i].name,student[i].age,student[i].sex,student[i].csny,student[i].address,student[i].tel,student[i].email); printf("nn");fp=fopen ("d:student.txt","wb"); for(j=0;j<num;j++)
fwrite(&student[j],sizeof(struct student),1,fp); fclose(fp);
printf("nn*******按任意键返回主界面********n"); getch();index();
system("cls");}
另外
char name[20]
如果是数字就是排序成功,如果是文字,那么输出就多多少少的不行,求大神解决!!!!
解决方案
for (i=0;i printf("nn");
for(i=0;i for(j=0;j0) {temp=student[j];
student[j]=student[j+1];
student[j+1]=temp; }
那两个for循环怎么看起来这么诡异,是我太LOW了吗?理解不到,求赐教
解决方案二:
应该是你的字符比较处理的有问题,可以仔细看看,
解决方案三:
你程序就没有比较关系怎么排序?