#include <stdio.h>
int main(){
void sorting(){
int a[4];
a[0]=1;
a[1]=6;
a[2]=15;
a[3]=3;
a[4]=19;
int size = 4;
int t =1;
if (size ==0) return; // ie if you reach to the end stop
int i;
for (i=0;i<size-1;i++){
if(a[i+1] >a[i]) { //if the +1 element is bigger than before it do the swap
int j;
j= a[i+1];
a[i+1]=a[i]; //swap
a[i] = j; //swap
}
}
sorting(*a,size - 1);//recursion
void print_int() {
int i; // Loop counter
for (i = 0; i < 4; i++) {
printf("%d\n", a[i]);
}}
}
它编译正常,但是当我尝试运行该文件时什么也没有出现?我的意图是创建一个数组对它们进行排序然后显示它们。
此外,发生递归的代码“sorting(*a,size - 1);//” 如果我尝试用 a[] 替换 *a 就会发生错误。这是为什么? 错误是“']'标记之前的预期表达式错误”!
谢谢。
最佳答案
int a[4];
但是您访问的 a[4]=19;
索引 4
超出范围。您可以访问最高索引3
。
我认为函数void sorting()
应该在main
之外定义。嵌套函数是GCC中的GNU扩展。
关于c - 用 C 语言对数组进行冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589103/