我想写一个程序来对分数进行排名 这是我的尝试:
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;
但输出是:
plz输入学生编号:
123202033个
评分:
65个
plz输入学生编号:
125425152个
评分:
56个
plz输入学生编号:
102323122个
评分:
98个
plz输入学生编号:
102325244个
评分:
75个
plz输入学生编号:
210232322个
评分:
45个
rank1 21426 98
rank2 23548 75
rank3 -5647 65
rank4 -10752 56
rank5 -7166 45
鼢
申
?? ?0?????“??”屪?@?@??。
9“x噈惄uv0??〜”?
答案 0 :(得分:0)
您在学生ID中提供了非常大的输入
输入学生编号: 的 123202033 强>
这与有效范围和整数
不对应这就是为什么它以负数提供输出