问题遇到的现象和发生背景
现在我们有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;
}