题目描述
输入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 <iostream> using namespace std; struct node { int num; int n; }a[10],t; int main() { int i,j; for(i=0;i<10;i++) { cin>>a[i].n; a[i].num=i; } for (i=0;i<10;i++) { for(j=0;j<=8-i;j++) { if(a[j].n>a[j+1].n) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<10;i++) { if (i==9) cout<<a[i].n<<endl; else cout<<a[i].n<<" "; } for(i=0;i<10;i++) { if (i==9) cout<<a[i].num+1<<endl; else cout<<a[i].num+1<<" "; } return 0; }