Keil u vision4的乱码文本

时间:2013-10-05 03:36:43

标签: c for-loop scanf keil

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

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噈惄uv0??〜”?

1 个答案:

答案 0 :(得分:0)

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

输入学生编号: 的 123202033

这与有效范围和整数

不对应

这就是为什么它以负数提供输出