貌似题解可以附上本题的链接,那就不重复描述了,开冲。
所有要注意的点都写在注释里了,另外交换两个数的方法用的是左老师推荐的异或,非常好使,nb就vans了。
#include <stdio.h>
int main(){
int num, i, j;
scanf("%d", &num);
// 判断一下学生数量够不
if(num<5||num>40)
return false;
int a[num];
// 先初始化数组
for(i=0;i<=num;i++)
a[i]={0};
for(i=0;i<num;i++)
{
scanf("%d", &a[i]);
// 对当前位置上的数与它右边的数进行比较
// 当前数小就往后挪
// 当前数大就把下标往前移一位,再继续比
for(j=i;j>=0;j--)
{
if(a[j]<a[j+1])
{
a[j] = a[j]^a[j+1];
a[j+1] = a[j]^a[j+1];
a[j] = a[j]^a[j+1];
}
}
}
// 最后输出前五个
for(i=0;i<5;i++)
printf("%d ", a[i]);
return 0;
}
京公网安备 11010502036488号