简单程序,不知道错哪了,望指点(粗心了,问题解决了,谢谢各位!)
程序目的:把输入的数据从大到小排序书上是直接用数组加循环实现的,我想把他改成用指针和函数来实现,程序调试没有报错,但是结果有问题。是不是数组下标越界了?要怎么改啊?
程序代码:
#include <stdio.h> #define N 4 void f_order (int a[]); void main () { int i,j,t,array_order[N]={0}; i=j=t=0; for(i=0;i<N;i++) { printf("第%d个要排序的值=",i+1); scanf("%d",&array_order[i]); printf("\n"); } printf("排序前:\n"); for(i=0;i<N;i++) printf("%4d",array_order[i]); printf("\n排序后:\n"); f_order(array_order); for(i=0;i<N;i++) printf("%4d",array_order[i]); printf("\n"); } void f_order (int a[]) { int i,j,t; int *p=NULL; p=a; for(i=0;i<N;i++) for(j=i;j<N;j++) { if(*(p+i)<*(p+j)) t=*(p+i); *(p+i)=*(p+j); *(p+j)=t; } }
[ 本帖最后由 weipeng1217 于 2012-1-18 11:07 编辑 ]