文章
36
粉丝
0
获赞
5
访问
22.2k
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
#include <string.h>
//object:按照成绩升序排列,成绩相同则按照学号升序排列
struct student{
int number,score;
}data[1000],temp;
int main(void){
int n,j,u;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++) scanf("%d %d",&data[i].number,&data[i].score);
for(int i=1;i<n;i++){
if((data[i].score<data[i-1].score)){ //如果这一项的分数小于前一项
temp = data[i];
for(j=i-1;j>=0&&data[j].score>temp.score;j--){
data[j+1].score = data[j].score;
data[j+1].number = data[j].number;
}
data[j+1].number = temp.number;
data[j+1].score = temp.score;
if(data[j+1].score==data[j].score){
if(data[j+1].number < data[j].number){ //判断学号大小
temp = data[j+1];
...
登录后发布评论
分数相同的时候学号排序逻辑有问题