一道c的选择排序

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:14:14
小弟编了这样一个程序
# include<stdio.h>
void main()
{
void sort(int array[]);
int a[10];
int i;
for (i=0;i<=9;i++)
{
scanf("%d",&a[i]);
}
sort(a);
for (i=0;i<=9;i++)
{
printf("%d ",a[i]);
}
printf"\n";
void sort(int array[])
{
int j,k,l,m;
for(j=0,k=1;j<=9;j++,k++)
{
for(l=k;l<=9;l++)
{
if (a[j]<a[l])
{m=a[j];a[j]=a[l];a[l]=m;}
}
}
}
以下是错误提示
帮忙看一下
e:\microsoft visual studio\myprojects\函数的调用\数组名做函数参数.cpp(16) : error C2143: syntax error : missing ';' before 'string'
e:\microsoft visual studio\myprojects\函数的调用\数组名做函数参数.cpp(16) : warning C4551: function call missing argument list
e:\microsoft visual studio\myprojects\函数的调用\数组名做函数参数.cpp(18) : error C2601: 'sort' : local function definitions are illegal
e:\

//回复楼主 不好意思, 漏说一处错误, main函数最后少个大括号..见代码中
//有两处错误, 我帮你改过来了

# include<stdio.h>
int a[10];//原来a的定义放在main里面是局部变量,sort会看不到,改成全局的
void main()
{
void sort(int array[]);
int i;
for (i=0;i<=9;i++)
{
scanf("%d",&a[i]);
}
sort(a);
for (i=0;i<=9;i++)
{
printf("%d ",a[i]);
}
printf("\n"); //原来是printf"\n";
} //这里少个大括号
void sort(int array[])
{
int j,k,l,m;
for(j=0,k=1;j<=9;j++,k++)
{
for(l=k;l<=9;l++)
{
if (a[j]<a[l])
{m=a[j];a[j]=a[l];a[l]=m;}
}
}
}

你要么把子函数在main之前声明一下,要么先写子函数再是main

void main()
{
void sort(int array[]);
int a[10];
int i;
for (i=0;i<=9;i++)
{
scanf("%d",&a[i]);
}
sort(a);
for (i=0;i<=9;i++)
{
printf("%d ",a[i]);