C语言,用函数实现选择排序,对C纯菜鸟

2024年11月30日 01:30
有2个网友回答
网友(1):

程序写得实在有点乱,变量名的声明与传递存在些问题,我帮你改改:
#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;ifor(j=i+1;jif(a[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就是个全局变量,直接使用就行。
还有一些定义了却没使用的变量我直接删了。
你先编译运行一下,有错再回复。
希望我的回答能帮助到你。

网友(2):

程序比较凌乱,不过分成函数写的思想倒还可以,注意自己定义的变量,大小写对应的是不同的变量(compare里面),而且你的看起来更像是直接排序;主函数里面应该先初始化数组在排序,顺序很关键