简单程序,不知道错哪了,望指点(粗心了,问题解决了,谢谢各位!)
程序目的:把输入的数据从大到小排序书上是直接用数组加循环实现的,我想把他改成用指针和函数来实现,程序调试没有报错,但是结果有问题。是不是数组下标越界了?要怎么改啊?
程序代码:#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 编辑 ]









