求助,给位帮我改一下好吗,我不知道是哪里错了
程序代码:
/*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;
}
给程序是利用函数生成一个伪随机数,然后将这组伪随机数赋给二维数组,再排序,可是,不知道是什么原因,该程序不能排序









