求助,给位帮我改一下好吗,我不知道是哪里错了
程序代码:
/*Date:2011-4-2,多维数组和指针的传值*/ #include <stdio.h> #include <stdlib.h> #define WIDE 20 //数组矩阵的宽度 #define HIGH 20 //数组矩阵的高度 void sort(int (*p)[WIDE]); //排序 void intswap(int a, int b); //变量值交换 int main() { int x[HIGH][WIDE]; int i; srand(time(NULL)); for(i=0; i<WIDE*HIGH; i++) { *(&x[0][0]+i)=rand(); } for(i=0; i<WIDE*HIGH; i++) { printf("%d\t", *(&x[0][0]+i)); } printf("\n\n\n随机数生成完毕!"); system("pause"); sort(x); return 0; } /*定义排序函数*/ void sort(int (*p)[20]) { int i, j; for(i=0; i<WIDE*HIGH-2; i++) { for(j=i; j<WIDE*HIGH-2; j++) { if( *(&p[0][0]+i) < *(&p[0][0]+j) ) intswap( *(&p[0][0]+i), *(&p[0][0]+j) ); } } for(i=0; i<WIDE*HIGH; i++) { printf("%d\t", *(&p[0][0]+i)); } } /*定义交换函数*/ void intswap(int a, int b) { a=a+b; b=a-b; a=a-b; }
给程序是利用函数生成一个伪随机数,然后将这组伪随机数赋给二维数组,再排序,可是,不知道是什么原因,该程序不能排序