问题遇到的现象和发生背景
现在我们有n个数据,请按从大到小的顺序,输出前10个名数据。
输入:
两行。
第一行一个整数n,表示要对多少个数据
第二行有n个整数,中间用空格分隔。表示n个数据。
输出:
一行,按从大到小排列的前10个数据,每个数据之间用一个空格隔开。
运行结果及报错内容
一直输入下去
我想要达到的结果
为什么
for (int i = 0; i < a; i++) {
scanf_s("%d ", &arr[i]);
}
出不去
- #include<stdio.h>
- #include<iostream>
- using namespace std;
- void paixu(int* arr, int a) {
- int j, i, k, max;
- for (i = 0; i < a-1; i++) {
- max = i;
- for (j = i + 1; j < a; j++) {
- if (arr[j] > arr[max]) {
- max = j;
- }
- }
- if (max != i) {
- int k;
- k = arr[max];
- arr[max] = arr[i];
- arr[i] = k;
- }
- }
- }
- int main()
- {
- int a, j;
- scanf_s("%d", &a);
- int arr[200];
- for (int i = 0; i < a; i++) {
- scanf_s("%d ", &arr[i]);
- //cin >> arr[i];
- }
- paixu(arr, a);
- for (j = 0; j < 10; j++) {
- printf("%d ", arr[j]);
- }
- return 0;
- }
-