Description
输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。
Input
输入数据有一行,包含10个整数,用空格分开。
Output
输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。
Sample
Input
1 2 3 5 4 6 8 9 10 7
Output
1 2 3 4 5 6 7 8 9 10 1 2 3 5 4 6 10 7 8 9
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
int n, num[100], i, j, temp, r[100];
//scanf("%d", &n);
for(i = 0; i < 10; i++){
scanf("%d", &num[i]);
r[i] = i + 1;
}
for(i = 0; i < 10; i++){
for(j = 0; j < 10 - 1 - i; j++){
if(num[j] >= num[j + 1]){
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
temp = r[j];
r[j] = r[j + 1];
r[j + 1] = temp;
}
}
}
for(i = 0; i < 10; i++){
printf("%d ", num[i]);
}
printf("\n");
for(i = 0; i < 10; i++){
printf("%d ", r[i]);
}
return 0;
}