注册 登录
编程论坛 C语言论坛

【求助】数组排序如何输出原来位置

小神女 发布于 2020-12-02 19:44, 1234 次点击
只有本站会员才能查看附件,请 登录
程序代码:
#include<stdio.h>
int main()
{

 int a[10],b[10],i,t,j;

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

 {

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

 b[i]=i+1;

 }
     for(i=0;i<9;i++)
     {
        for(j=0;j<=9-i;j++)
        {
           if(a[j]>a[j+1])
           {
             t=a[j];a[j]=a[j+1];a[j+1]=t;
             t=b[j];b[j]=b[j+1];b[j+1]=t;
           }
        }
     }
     for(i=0;i<10;i++)
     {
        if(i==0) printf("%d",a[i]);     
          else printf(" %d",a[i]);
    }
    printf("\n");
    for(i==0;i<10;i++)
    {
     if(i==0) printf("%d",b[i]);
     else printf(" %d",b[i]);
    }
    printf("\n");
    return 0;
}

不知道是哪里写错了导致不能输出数组b

[此贴子已经被作者于2020-12-2 19:46编辑过]

3 回复
#2
rjsp2020-12-02 20:06
编译有警告
prog.cc: In function 'int main()':
prog.cc:33:10: warning: statement has no effect [-Wunused-value]
     for(i==0;i<10;i++)
          ^
#3
小神女2020-12-02 21:38
回复 2楼 rjsp
感谢!!修改正确了~~~~~~~
#4
小神女2020-12-02 21:39
程序代码:
#include<stdio.h>
int main()
{

 int a[10],b[10],i,t,j;

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

 {

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

 b[i]=i+1;

 }
     for(i=0;i<9;i++)
     {
        for(j=0;j<9-i;j++)
        {
           if(a[j]>a[j+1])
           {
             t=a[j];a[j]=a[j+1];a[j+1]=t;
             t=b[j];b[j]=b[j+1];b[j+1]=t;
           }
        }
     }
     for(i=0;i<10;i++)
     {
        if(i==0) printf("%d",a[i]);     
          else printf(" %d",a[i]);
    }
    printf("\n");
    for(i=0;i<10;i++)
    {
     if(i==0) printf("%d",b[i]);
     else printf(" %d",b[i]);
    }
    printf("\n");
    return 0;
}

这个是修改好的
1