绝对值排序问题,我输出结果是错的

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果
#include
#include
int main()
{ int n,t,i;
  scanf("%d",&n);
  int a[n];
  while(scanf("%d",&a[n])!=0)
  { for(i=0;ifabs(a[i]);
     if(a[i]>a[i+1])
      { t=a[i];a[i]=a[i+1];a[i+1]=t;
      }
    }
    for(i=0;iprintf("%d ",a[i]);
    }
  }
    return 0;
}

都说了是绝对值排序,你if里为什么还不写绝对值,你把绝对值放for里是要干啥
按a[i]的绝对值进行排序,你不要把原始数据给改了