可以帮忙看看我的这程序那里错了
VC不通过
就是排a[5]={7,5,8,6,9}的顺序
#include<stdio.h>
pai(int *a[],int 5)
{int i,j,t;
for(i=0;i<5-1;i++)
for(j=i+1;j<5;j++)
if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{
int i,a[5]={7,5,8,6,9};
for(i=0;i<5;i++) printf(“%d “,a[i]);
printf(“\n排序后:”);
pai(a,5);
for(i=0;i<5;i++) printf(“%d “,a[i]);
}
这是VC的错误提示
——————–Configuration: 排序 – Win32 Debug——————–
Compiling…
排.c
D:\Program Files\Microsoft Visual Studio\MyProjects\排序\排.c(2) : error C2143: syntax error : missing ‘)’ before ‘constant’
D:\Program Files\Microsoft Visual Studio\MyProjects\排序\排.c(2) : error C2143: syntax error : missing ‘{‘ before ‘constant’
D:\Program Files\Microsoft Visual Studio\MyProjects\排序\排.c(2) : error C2059: syntax error : ‘<Unknown>’
D:\Program Files\Microsoft Visual Studio\MyProjects\排序\排.c(2) : error C2059: syntax error : ‘)’
D:\Program Files\Microsoft Visual Studio\MyProjects\排序\排.c(13) : warning C4013: ‘pai’ undefined; assuming extern returning int
执行 cl.exe 时出错.
排.obj – 1 error(s), 0 warning(s)
>> 本文固定链接: http://www.vcgood.com/archives/2158
你对排序函数设置了返回值类型了吗
pai(int *a[],int 5)
很明显的一个错务就是声明了常量5为int;
第二:你要接收的是一个数组的首地址,而不是多个地址。程序可改为pai(int a,int k)
不过这个变量k有什么用我也在想??
需高手指点!!
函数调用处两处错误
1传入地址故应指针接受。
2传入整形故变量接受。
还有2处warning:
1pai()无返回类型说明。
2main()无返回类型说明。
改后参考:
#include<stdio.h>
void pai(int *a,int m)
{
int i,j,t;
for(i=0;i<m-1;i++)
for(j=i+1;j<m;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
}
void main()
{
int i,a[5]={7,5,8,6,9};
for(i=0;i<5;i++) printf(“%d “,a[i]);
printf(“\n排序后:”);
pai(a,5);
for(i=0;i<5;i++) printf(“%d “,a[i]);
}