#include<stdio.h>
int main()
{
int member,n[100],i,j,temp,grade_1;
scanf("%d",&member);
for(i=1;i<=member;i++)
{
scanf("%d",&n[i]);
}
grade_1=n[1];
for(i=1;i<=member;i++){
for(j=1;j<=member-i;j++){
if(n[j+1]>n[j]){
temp=n[j+1];
n[j+1]=n[j];
n[j]=temp;
}
}
} for(i=1;i<=member;i++)
{
if(n[i]==grade_1)
break;
}
switch(i%10){
case 1:{if(i!=11)
printf("%dst",i);
else
printf("%dth",i);
break;}
case 2:{if(i!=12)
printf("%dnd",i);
else
printf("%dth",i);
break;}
case 3:{if(i!=13)
printf("%drd",i);
else
printf("%dth",i);
break;}
default:printf("%dth",i);break;
}
return 0;
}
for(i=1;i<=member;i++)
{
scanf("%d",&n[i]);
}
这是错误的。member允许值是1-100,你数组大小也定义成100,那么n[100]就越界了
既然你想放弃掉数组的第0个元素,那么你必须定义数组大小至少为101,才能存放最大值为100个的学生信息