无法第二次排序数组

时间:2017-01-09 20:18:03

标签: c function sorting multidimensional-array bubble-sort

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

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;
      }
    }
  }

}

0 个答案:

没有答案