分类：电脑/网络-软件
问题：C语言二维数组的排序问题（为什么以下代码不能实现升序排列？？？） 
 #include <std.h>  void main()  {         int row,column,i,j,min,temp,c[2][2];         scanf("%d%d%d%d",&c[0][0],&c[0][1],&c[1][0],&c[1][1]);         for( row = 0; row < 2; row++ )       {          for( column = 0; column < 2; column++)          { #include <std.h>  void main()  {         int row,column,i,j,min,temp,c[2][2];         scanf("%d%d%d%d",&c[0][0],&c[0][1],&c[1][0],&c[1][1]);         for( row = 0; row < 2; row++ )       {          for( column = 0; column < 2; column++)          {             min = c[row][column];             for( i = row; i < 2; i++ )             {                for( j = 0; j < 2; j++ )                   if( min > c[i][j] )                   {                      temp = c[i][j];                      c[i][j] = min;                      min = temp;                   }              }             c[row][column] = min;          }       }        printf("%d %d %d %d",c[0][0],c[0][1],c[1][0],c[1][1]);        system("pause");  } 如输入1 2 3 4输出却为2 1 4 3
回答：这个有点混乱哦，你单步调一下就知道了。事实上二维数组可以按照一维数组的方法进行排序，下面是我的代码：#include <stdio.h> #define ROW    2#define  COL    2  #define NUM    ((ROW)*(COL))int main() {  int i,j;  int temp;  int c[ROW][COL];   int *pmin;  pmin = &c[0][0];  scanf("%d%d%d%d",&c[0][0],&c[0][1],&c[1][0],&c[1][1]);   for(i = 0; i < NUM; i++)   {    for(j = 0; j < (NUM - i); j++)     {      if((*pmin) > *(pmin + j))       {        temp = *(pmin + j);         *(pmin + j) = *pmin;         *pmin = temp;       }     }    pmin++;   }  printf("%d %d %d %d\n",c[0][0],c[0][1],c[1][0],c[1][1]);     return 1;}给你做个参考，呵呵！