开发者社区> 问答> 正文

求C语言排序算法代码,要求排序完以后能够返回原来数值所在的位置。不能返回位置的排序代码就不要复制了

比如A=[3 5 4 7],排序完得到数组B=[3 4 5 7],以及原先的位置数组C=[1 3 2 4]

展开
收起
知与谁同 2018-07-22 11:03:58 2042 0
2 条回答
写回答
取消 提交回答
  • 杀人者,打虎武松也。
    这个我可以帮你写
    2019-07-17 22:50:50
    赞同 展开评论 打赏
  • #include<stdio.h>

    int main()

    {int n,i,j,t,a[20],b[20],c[20];

     printf("请输入有几个数:");

     scanf("%d",&n);

     printf("请输入%d个数:\n",n);

     for(i=0;i<n;i++)

     {

    scanf("%d",&a[i]);

    b[i]=a[i];

    c[i]=i+1;

     }

     for(i=0;i<n-1;i++)

    for(j=0;j<n-1-i;j++)

    if(b[j]>b[j+1])

    { t=b[j];b[j]=b[j+1];b[j+1]=t;

     t=c[j];c[j]=c[j+1];c[j+1]=t;}


    printf("\n排序以后的B数组:\n");

    for(i=0;i<n;i++)

    printf("%d ",b[i]);

    printf("\n排序以后的B数组:\n");

    for(i=0;i<n;i++)

    printf("%d ",c[i]);

    printf("\n");

    return 0;

    }

    2019-07-17 22:50:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载