c++用数组表示方法进行排序

img

请问这个数组排序法错在哪里? 我是刚学没有经验,在练题目,请解答者回复详细点,谢谢。

img

排序需要双循环的
你输入10个整数,之间需要加空格的啊,不能连在一起,连在一起就当做一个整数了

for(int i=0;i<9;i++)
   for(int j=0;j<9-i;j++)
   {
        if(n[j] > n[j+1])
        {
            int t = n[j];
            n[j] = n[j+1];
            n[j+1] = t;
        }
   }

你的这个属于冒泡交换排序,需要两个循环,代码如下:

for(int i=0;i<9;i++)
{
   for(int j=i;j<9;j++)
   {
        if(n[j] > n[j+1])
        {
            int t = n[j];
            n[j] = n[j+1];
            n[j+1] = t;
        }
}

希望采纳一下,对我的帮助很大

这么写就对了

for(int i=0;i<9;i++)
   for(int j=0;j<9-i;j++) {
        if(n[j] > n[j+1]){
            int t = n[j];
            n[j] = n[j+1];
            n[j+1] = t;
        }
   }
 

可以查看手册:c++-数组 中的内容