我正在尝试研究一些算法问题,但找不到启动我的选择排序算法代码的方法。我正在使用Visual Studio,并且代码不会通过编译显示任何错误。当我启动代码时,系统只会停止几秒钟,然后显示“按任意键继续...”。我是初学者,看不到出什么问题了。帮助面
#include <stdio.h>
int n = 6;
int qwerty(int a[]) {
int i, j, t;
for (i=1; i<=n-1; i++){
for (j=i+1; j<=n; j++){
if (a[i] > a[j]){
t = a[j];
a[j] = a[i];
a[i] = t;
}
}
}
}
int main(void) {
int a[6] = { 2, 14, 20, 8, 17, 13 };
qwerty(a[n]);
int i;
for (i = 1; i <= n; i++){
printf("%d ", a[i]);
}
}
答案 0 :(得分:2)
在C语言中,数组从0开始索引,最后一个元素在索引 n-1 处。因此,您应该更改的第一件事是循环为for(i = 0; i < n-1; i++)
和for(j = i + 1; j < n; j++)
这也是一个冒泡排序算法,而不是选择排序。选择排序算法可以在任何地方找到,所以我不在这里输入。