c++中如何将一组类似下列数据输出

c++如何将类似 1 3 1 2 1 0 2 3 3这样的输入数据输出为 2 7 3 5 4 1 6 8 9

不是很明白你的意思??
输入 输出
1 2
3 7
1 3

请详细说明白。。。

将原始数组放入一个二维数组中int array[2][n],先将原始数组放入二维数组的第一行,将array的第二行都赋值为0,
然后不断遍历这个二维数组的第一行,寻找对应值不为0且在所遍历的数中最小的数,将这个数的对应值改变为遍历的大循环中的变量。
这样依次赋值,最后将二维数组的第二行拿出来,就是想要的数组。
举个例子,原始数组为1 3 1 2 1 0 2 3 3 那么遍历的外循环就是9次,内循环也是9次,二维数组的第一行为1 3 1 2 1 0 2 3 3
第二行初始为0 0 0 0 0 0 0 0 0 ,九个0,第一次遍历找到这些数中最小的数为0,并且它对应的值也是0,这时改变它对应的值为1,
那么二维数组的第二行为0 0 0 0 0 1 0 0 0,再一次遍历,外循环的变量为1,找到数组中对应值为0且最小的数是1,这时将1的对应值改变为2
这时二维数组的第二行为2 0 0 0 0 1 0 0 0,依次下去,直到最后2 7 3 5 4 1 6 8 9

思路:将输入数据存入到两个数组a和b,然后对数组b进行排序。再创建数组c保存最后结果。然后遍历数组b中的数据,并在a中找到相应位置,找到后设置数组c的对应位置为相应的值即可。

#include <stdio.h>

void main()
{
    //输入的数字
    int a[9]={1,3,1,2,1,0,2,3,3};

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

    //对数组b排序
    for(int i = 0;i < 9;i++)
    {    
        for(int j = 0;j < 9-i-1;j++)
        {  
            if(b[j] > b[j+1]){  
                int t = b[j];  
                b[j] = b[j+1];  
                b[j+1] = t;  
            }  
        }  
    }

    //数组c存放结果
    int c[9]={-1,-1,-1,-1,-1,-1,-1,-1,-1};

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