c语言结构体冒泡排序求教

用冒泡排序输出每个学生的信息,新人求大神教学 这个程序哪错了还有麻烦亲把修改过的发上来吧 谢谢了for(j=0;j<stuNUM-2;j++){for(i=0;i<stuNUM-j-1;i++)if(stu[i].pingjun>stu[i+1].pingjun){temp.name=stu[i].name;strcpy(temp.name,stu[i].name);stu[i].name=stu[i+1].name;strcpy(stu[i].name,stu[i+1].name);stu[i+1].name=temp.name;strcpy(stu[i+1].name,temp.name);temp.xuehao=stu[i].xuehao;strcpy(temp.xuehao,stu[i].xuehao);stu[i].xuehao=stu[i+1].xuehao;strcpy(stu[i].xuehao,stu[i+1].xuehao);stu[i+1].xuehao=temp.xuehao;strcpy(stu[i+1].xuehao,temp.xuehao);temp.yuwen=stu[i].yuwen;strcpy(temp.yuwen,stu[i].yuwen);stu[i].yuwen=stu[i+1].yuwen;strcpy(stu[i].yuwen,stu[i+1].yuwen);stu[i+1].yuwen=temp.yuwen;strcpy(stu[i+1].yuwen,temp.yuwen);temp.shuxue=stu[i].shuxue;strcpy(temp.shuxue,stu[i].shuxue);stu[i].shuxue=stu[i+1].shuxue;strcpy(stu[i].shuxue,stu[i+1].shuxue);stu[i+1].shuxue=temp.shuxue;strcpy(stu[i+1].shuxue,temp.shuxue);temp.yingyu=stu[i].yingyu;strcpy(temp.yingyu,stu[i].yingyu);stu[i].yingyu=stu[i+1].yingyu;strcpy(stu[i].yingyu,stu[i+1].yingyu);stu[i+1].yingyu=temp.yingyu;strcpy(stu[i+1].yingyu,temp.yingyu);temp.wuli=stu[i].wuli;strcpy(temp.wuli,stu[i].wuli);stu[i].wuli=stu[i+1].wuli;strcpy(stu[i].wuli,stu[i+1].wuli);stu[i+1].wuli=temp.wuli;strcpy(stu[i+1].wuli,temp.wuli);temp.huaxue=stu[i].huaxue;strcpy(temp.huaxue,stu[i].huaxue);stu[i].huaxue=stu[i+1].huaxue;strcpy(stu[i].huaxue,stu[i+1].huaxue);stu[i+1].huaxue=temp.huaxue;strcpy(stu[i+1].huaxue,temp.huaxue);temp.shengwu=stu[i].shengwu;strcpy(temp.shengwu,stu[i].shengwu);stu[i].shengwu=stu[i+1].shengwu;strcpy(stu[i].shengwu,stu[i+1].shengwu);stu[i+1].shengwu=temp.shengwu;strcpy(stu[i+1].shengwu,temp.shengwu);temp.pingjun=stu[i].pingjun;strcpy(temp.pingjun,stu[i].pingjun);}stu[i].pingjun=stu[i+1].pingjun;strcpy(stu[i].pingjun,stu[i+1].pingjun);stu[i+1].pingjun=temp.pingjun;strcpy(stu[i+1].pingjun,temp.pingjun);printf("序号 姓名 学号 语文成绩 数学成绩 物理成绩 化学成绩 生物成绩 平均成绩\n");for(i=0;i<stuNUM;i++)printf("%d%16s %8d %d %d %d %d %d %d %d\n",i+1,stu[i].name,stu[i].xuehao,stu[i].yuwen,stu[i].shuxue,stu[i].yingyu,stu[i].wuli,stu[i].huaxue,stu[i].shengwu,stu[i].pingjun);return 0;}
文字补充部分是int j之后的程序

struct Student
{
int ID;
char Name[10];
};

void sort(Student *a, int n)
{
Student t;
int i, j;
for(i=0;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j].ID>a[j+1].ID)
{
memcpy(&t, &a[j], sizeof(Student));
memcpy(&a[j], &a[j+1], sizeof(Student));
memcpy(&a[j+1], &t, sizeof(Student));
}
}
在结构体赋值中,上面使用memcpy函数,如:
memcpy(&t, &a[j], sizeof(Student));
可以替换为:
t.ID = a[j].ID;
strcpy(t.Name, a[j].Name);
依次类推。追问

这个我知道啊 但是这个报错了 还有sizeof代表的是啥

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答