【发布时间】:2015-12-11 21:20:33
【问题描述】:
#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[] 则会发生错误。这是为什么? 错误是“']'标记之前的错误预期表达式”!
谢谢。
【问题讨论】:
-
运行文件?你在编译并执行它吗?
-
这里的问题太多了:越界a[4],没有参数的子函数永远不会被调用......请先阅读一些关于C语法的书。
标签: c arrays sorting recursion