排序问题
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。
输入
输入数据有一行,包含10个整数,用空格分开。
输出
输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。
示例输入
1 2 3 5 4 6 8 9 10 7
示例输出
1 2 3 4 5 6 7 8 9 10 1 2 3 5 4 6 10 7 8 9
#include <stdio.h>
int main()
{
int a[10], loc[10];
int i, j, t;
for (i=0; i<10; i++){
scanf("%d", a+i);
loc[i] = i+1;
}
for (i=0; i<10; i++)
for (j=i+1; j<10; j++){
if (a[i] > a[j]){
t = a[i]; a[i] = a[j]; a[j] = t;
t = loc[i]; loc[i] = loc[j]; loc[j] = t;
}
}
for (i=0; i<9; i++)
printf("%d ", a[i]);
printf("%d\n", a[9]);
for (i=0; i<9; i++)
printf("%d ", loc[i]);
printf("%d\n", loc[9]);
return 0;
}