qq_28635077 2015-06-29 08:29 采纳率: 0%
浏览 1595

求帮忙看看错在哪里,把输进去的数据从大到小排序

#include
#include

typedef struct student
{
char name[20];
int score;
}STU;

void sort(STU *aStu, int n)
{
int i,j;
int temp;
for(j=0;j {
for(i=0;i {
if(aStu[i].score>aStu[i+1].score)
{
temp=aStu[i].score;
aStu[i].score=aStu[i+1].score;
aStu[i+1].score=temp;
}
}
}
printf("学生成绩从大到小排序为:");
for(i=0;i<n;i++)
{
printf("%s,%d\n",aStu[i].name,aStu[i].score);
}
}

int main(void)
{
int i;
int num;
STU *aStu={0};
printf("请输入学生的人数:");
scanf("%d",&num);
printf("请输入学生的姓名及成绩:");
for(i=0;i<num;i++)
{
scanf("%s,%d",aStu[i].name,&aStu[i].score);
}
sort(aStu, num);

system("pause");
return 0;

}

  • 写回答

2条回答

  • bdmh 移动开发领域优质创作者 2015-06-29 08:33
    关注

    第二个for循环应该是根据 j 的位置去做循环,就比如

     for(j=0;j<=9;j++) 
    { for (i=0;i<10-j;i++) 
    

    网上冒泡排序很多代码的,仔细看看

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作