C语言的菜鸟问题~~~高手进~~~

来源:百度知道 编辑:UC知道 时间:2024/07/02 17:50:46
#include<stdio.h>
void sort (int x[],int n)
void main()
{
int *p,i,a[10]={3,7,9,11,0,6,7,5,4,2};
printf("The original array:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{
printf("%d,",*p);p++;
}
printf("\n");
}
void sort (int x[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k]) k=j;
if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t}

}
}

请问哪错了???
--------------------Configuration: 000 - Win32 Debug--------------------
Compiling...
000.cpp
E:\闻\呵呵\000\000.cpp(3) : warning C4518: 'void ' : storage-class or type specifier(s) unexpected here; ignored
E:\闻\呵呵\000\000

void sort (int x[],int n) 后面缺分号
排序用的是直接选择排序,for(i=0;i<n-1;i++)的作用是决定未排序的开始元素,for(j=i+1;j<n;j++)就是的作用是找出从i开始最大的那个编号,if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t} 就是将最大的移到前面,所白了就是每次从未排序中找出最大一个,将它移动到以排序的后面一个,最后一个元素就不用排了。

#include<stdio.h>
void sort (int x[],int n) ;
void main()
{
int *p,i,a[10]={3,7,9,11,0,6,7,5,4,2};
printf("The original array:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{
printf("%d,",*p);p++;
}
printf("\n");
}
void sort (int x[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k]) k=j;
if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t;}

}
}

你试试

void sort (int x[],int n)
后面加分号

{t=x[i];x[i]=x[k];x[k]=t}