比如A=[3 5 4 7],排序完得到数组B=[3 4 5 7],以及原先的位置数组C=[1 3 2 4]
#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;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。