C 无法对数组进行第二次排序

C 无法对数组进行第二次排序,c,function,sorting,multidimensional-array,bubble-sort,C,Function,Sorting,Multidimensional Array,Bubble Sort,我无法在第二次循环后对数字进行排序,第一组数字被排序,但之后它们只按相同的顺序打印给定的数字。 Ex输入: 2 4 67 90 76 89 3 67 45 12 输出: 67 76 89 90 67 45 12 这是密码 #include<stdio.h> #include<string.h> #define Read(inp) scanf(

我无法在第二次循环后对数字进行排序,第一组数字被排序,但之后它们只按相同的顺序打印给定的数字。 Ex输入:

2                                                          
4

67
90
76
89

3

67
45
12
输出:

67 76 89 90 

67 45 12 
这是密码

#include<stdio.h>
#include<string.h>
#define Read(inp) scanf("%i",&inp)
#define For(i,a) for(i=0; i<a; i++)

int temp;

void sort(int num1, int num2, int inp2[][num1]);

int main() {
  int T;

  int N[100];
  int weight[100][100];
  int i, j;
  Read(T);

  For(i,T)
  {
    Read(N[i]);
    For(j,N[i])
    {
      Read(weight[i][j]);
    }
  }

  int e, d;
  For(e,T)
  {
    sort(N[e], e, weight);
    For(d,N[e])
    {
      printf("%i ", weight[e][d]);
    }
    printf("\n");
  }
}

void sort(int num1, int num2, int inp2[][num1]) {
  int d, e;
  For(d,num1-1)
  {
    For(e,num1-1-d)
    {
      if (inp2[num2][e] > inp2[num2][e + 1]) {
        temp = inp2[num2][e];
        inp2[num2][e] = inp2[num2][e + 1];
        inp2[num2][e + 1] = temp;
      }
    }
  }

}
#包括
#包括
#定义读取(inp)扫描(“%i”、&inp)
#定义(i,a)(i=0;i inp2[num2][e+1]){
温度=inp2[num2][e];
inp2[numm2][e]=inp2[numm2][e+1];
inp2[num2][e+1]=温度;
}
}
}
}

使用宏作为懒散的代码编写方式,再加上糟糕的代码格式设置,使您的新语言几乎无法阅读。你能提供一本手册吗?重写这段代码而不使用宏
void sort(int num1,int num2,int inp2[][num1])-->
无效排序(int num1、int num2、int inp2[][100])因为<代码>权重>代码>不是VLA。@ CxU.No,我在别人编写的代码中看到了这些。@ A.S.H C程序员可能没有和C++一样懒惰吗?新的想法(好的和坏的)慢慢地进入C代码库。