问题描述
- C语言编程题,插入求和函数,排序函数。么有错误,但结果不对!
- 定义一个包括学号、姓名及三门课的成绩和总分的结构体,利用该结构体说明一个包含五个人的结构体数组。从键盘输入五个人的基本信息、计算总分,并根据总分排序输出一个成绩单!
解决方案
show us the code
加个断点调试吧看看每次排序后的顺序是否如预期结果
解决方案二:
这个代码也没贴出来,怎么知道问题出在哪里
解决方案三:
复 6楼 newdos
#include
void shuru(void);
void qiuhepaixu(void);
void shuchu(void);
typedef struct student
{
??? long studentID;
??? char studentName[10];
??? int sum[30];
??? int a;
??? int b;
}STUDENT;
??? STUDENT stu[3];
void main()
{
??? shuru();
??? qiuhepaixu();
}
void shuru(void)
{
??? int i;
??? for(i=0;i<3;i++)
??? {
????????printf(""请输入第%d个学生的学号 姓名??数学成绩 语文成绩n""i+1);
????????scanf(""%ld""&stu[i].studentID);
????????scanf(""%s""&stu[i].studentName);
????????scanf(""%d""&stu[i].a);
????????scanf(""%d""&stu[i].b);
??? }
??? shuchu();
}
void shuchu(void)
{
??? int isum[30];
??? printf(""学号t 姓名t??数学t 语文t??总分n"");
??? for(i=0;i<3;i++)
??? printf(""%ldt %st %dt??%dt %dn""stu[i].studentIDstu[i].studentNamestu[i].astu[i].bsum[i]);
}
void qiuhepaixu(void)
{
??? int ijsum[30];
??? for(i=0;i<3;i++)
??{
??? sum[i]=0;
??? sum[i]=stu[i].sum+stu[i].a+stu[i].b;
??}
???struct student temp;
???for(i=0;i???{
??????for(j=i+1;j??? {
????????? if(stu[i].sum>stu[j].sum)
????????{
????????????temp=stu[i];
????????????stu[i]=stu[j];
????????????stu[j]=temp;
?????????}
??????}
?????}
?????shuchu();
}