c语言,missing ';' before 'type'的问题

我想编个C程序,实现将一个5个元素的一维数组用函数排列成从小到大,但是在函数声明的 int rank(int a[]);这里总报错说missing ';' before 'type',求解应该怎么改?
#include<stdio.h>
void main()
{int i,a[5];
for(i=0;i<5;i++)
{printf("plz input %d",i+1);
scanf("%d",&a[i]);
}
int rank(int a[]);
rank(a);
for(i=0;i<5;i++)
printf("%d\n",a[i]);
}

int rank(int * x)
{int i,j,temp;
for(i=0;i<4;i++)
{
for(j=0;i+j<4;j++)
{if(*(x+i+j)>*(x+i+j+1))
{temp=* (x+i+j);
* (x+i+j)=* (x+i+j+1);
* (x+i+j+1)=temp;
}
}
}
}

把 int rank(int a[]); 写到void main 上面去。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-15
int rank(int a[]);写到void main()上面
像这种函数的声明都要写在前面,不能写在程序中间,这在C语言里面是不允许的!
第2个回答  2011-09-15
尽量避免在函数体内部声明函数原型,函数原型声明尽可能全部放到模块前面,不要问为什么。
第3个回答  2011-09-15
int rank(int a[]);
改成int rank(int * x)试试
第4个回答  2011-09-15
函数声明我没这样写过,放到main前面或者跟int 放一起都没问题
相似回答