-1

我想编写一个程序来对分数进行排名,这是我的尝试:

int i,j,s[5][2],tmp,p;
for(i=0;i<5;i++)
{
    printf("plz input student numder:\n");
    scanf("%d",&s[i][0]);
    printf("score:\n");
    scanf("%d",&s[i][1]);
}
for(p=0;p<5;p++)  
{                         
        for(i=p+1;i<5;i++)
   {
            if(s[i][1]>s[p][1])
             {
                tmp=s[p][1];
                s[p][1]=s[i][1];
                s[i][1]=tmp;
                j=s[p][0];
                s[p][0]=s[i][0];
                s[i][0]=j;
           } 
     }
      }
for(i=0;i<5;i++)
   {
    printf("rank%d %d %d\n",i+1,s[i][0],s[i][1]);
    }
    return 0;    

但输出是:
请输入学生人数:
123202033
分数:
65
请输入学生人数:
125425152
分数:
56
请输入学生人数:
102323122
分数:
98
请输入学生人数:
102325244
分数:
75
请输入学生人数:
210232322
分数:
45
rank1 21426 98
rank2 23548 75
rank3 -5647 65
rank4 -10752 56
rank5 -7166 45
鼢<br> Dt
?? ?0??????"屪?@?@???<br>9"x噈惄uv0??~"?

4

1 回答 1

0

您在学生 ID 中提供了非常大的输入

请输入学生编号: 123202033

与有效范围不对应的整数

这就是为什么它给出否定的输出

于 2013-10-05T04:09:48.880 回答