问题一百二十二:排序

2014-11-23 22:13:09 · 作者: · 浏览: 4

[plain] Description


输入10个大小不同的整数,将它们从小到大排序后输出,并给出现每个元素在原来序列中的位置。


Input


输入数据有一行,包含10个整数,用空格分开。


Output


输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。


Sample Input


1 2 3 5 4 6 8 9 10 7

Sample Output


1 2 3 4 5 6 7 8 9 10
1 2 3 5 4 6 10 7 8 9

Description


输入10个大小不同的整数,将它们从小到大排序后输出,并给出现每个元素在原来序列中的位置。


Input


输入数据有一行,包含10个整数,用空格分开。


Output


输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。


Sample Input


1 2 3 5 4 6 8 9 10 7

Sample Output


1 2 3 4 5 6 7 8 9 10
1 2 3 5 4 6 10 7 8 9


[plain] #include

int main()
{
int i;
int j;
int t;
int flag;
int a[10];
int b[10];

for(i=0; i<10; i++)
{
scanf("%d", &a[i]);
}

for(i=0; i<10; i++)
{
b[i]=a[i];
}

for(i=0; i<9; i++)
{
for(j=i+1; j<10; j++)
{
if(a[i]> a[j])
{
t= a[i];
a[i]= a[j];
a[j]= t;
}
}
}

for(i=0; i<10; i++)
{
printf("%d", a[i]);
if(i<9)
{
printf(" ");
}
else
{
printf("\n");
}
}


for(i=0; i<10; i++)
{
flag=0;
for(j=0; j<10; j++)
{
if(a[i]==b[j])
{
flag=1;
printf("%d", j+1);
if(i<9)
{
printf(" ");
}
}
if(flag)
{
break;
}
}
}

return 0;
}

#include

int main()
{
int i;
int j;
int t;
int flag;
int a[10];
int b[10];

for(i=0; i<10; i++)
{
scanf("%d", &a[i]);
}

for(i=0; i<10; i++)
{
b[i]=a[i];
}

for(i=0; i<9; i++)
{
for(j=i+1; j<10; j++)
{
if(a[i]> a[j])
{
t= a[i];
a[i]= a[j];
a[j]= t;
}
}
}

for(i=0; i<10; i++)
{
printf("%d", a[i]);
if(i<9)
{
printf(" ");
}
else
{
printf("\n");
}
}

for(i=0; i<10; i++)
{
flag=0;
for(j=0; j<10; j++)
{
if(a[i]==b[j])
{
flag=1;
printf("%d", j+1);
if(i<9)
{
printf(" ");
}
}
if(flag)
{
break;
}
}
}

return 0;
}

\