程序写得实在有点乱,变量名的声明与传递存在些问题,我帮你改改:
#include
#define N 5
int a[N];
void init(void);
void compare(void);
void disp(void);
void main()
{
// printf("")
init();
compare();
void disp();
}
void init(void)
{
a[N]={2,1,4,9,5};
}
void compare(void)
{
int i,j,t;
for(i=0;i
t=a[i];
a[i]=a[j]
a[j]=t;
}
}
void disp(void)
{
int i;
for(i=0;i
printf("%4d",a[i]);
}
}
程序改了很多,为什么?
数组a 定义为局部变量,你传递了却没返回,这样使用不了,我改为了全局变量,这样不需要传递,直接使用就行。
函数传递的另一个变量N 不需要传递,因为本身N就是个全局变量,直接使用就行。
还有一些定义了却没使用的变量我直接删了。
你先编译运行一下,有错再回复。
希望我的回答能帮助到你。
程序比较凌乱,不过分成函数写的思想倒还可以,注意自己定义的变量,大小写对应的是不同的变量(compare里面),而且你的看起来更像是直接排序;主函数里面应该先初始化数组在排序,顺序很关键