1.问题:期中考试开始了,大家想要取得好成绩,争夺前五名,从键盘输入n个学生成绩(不超过40个),输出每组的前五名的成绩
两行,第一行输入一个整数,表示n个学生(>=5),第二行输入n个 学生的成绩(整数表示,范围0-100),用空格分割. 一行,输出成绩最好的前五个,用空格分隔.
2.第一步我们先输入有多少学生,和成绩分别是多少,用scanf的方式
#includ<stdio.h>
int main()
{int a = 0;scanf_s("%d", &a);int arr[40] = { 0 };for(int i=0;i<a;i++){scanf_s("%d", &arr[i]);}return 0;
}
3.然后我们进行比较,用冒泡函数的方式进行比较,一个数一个数的比较大小,原因冒泡排序为升序,但是我们为了方便打印,我们用降序。(注意:j<a-1-i是因为最后一位数已经是最小的数字了,不用进行重复比较)。最后将它的前五位打印出来就可以了。
#include<stdio.h>
int main()
{int a = 0;scanf_s("%d", &a);int arr[40] = { 0 };for(int i=0;i<a;i++){scanf_s("%d", &arr[i]);}for (int i = 0; i < a-1; i++){int j = 0;for (j = 0; j < a - 1 - i; j++){if (arr[j] < arr[j + 1]){int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}for (int j = 0; j <5; j++){printf("%d ", arr[j]);}return 0;
}