排序问题

来源:互联网 发布:鲜知知命理博客 编辑:程序博客网 时间:2024/06/09 16:23

排序问题

Time Limit: 1000MS Memory Limit: 65536KB

Submit Statistic

Problem Description

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

Input

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

Output

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

Example Input

1 2 3 5 4 6 8 9 10 7

Example Output

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

Hint

Author

#include<stdio.h>#include<stdlib.h>int main(){    int a[11],b[1000];//B数组存储位置    int i,j,t;    for(i =1;i <= 10;i++)    {        scanf("%d",&a[i]);        b[a[i]] = i;    }    for(i = 1;i <= 10-1;i++)//冒泡排序,注意数组下标是从1开始的    {        for(j = 1;j <= 10-i;j++)        {            if(a[j]>a[j+1])            {                t = a[j];                a[j] = a[j+1];                a[j+1] = t;            }        }    }    for(i = 1;i <= 10;i++)    {        if(i==10)printf("%d\n",a[i]);        else printf("%d ",a[i]);    }    for(i = 1;i <= 10;i++)    {        if(i==10)printf("%d\n",b[a[i]]);        else printf("%d ",b[a[i]]);    }    return 0;}
原创粉丝点击