读书人

程序总是在tc20中编译异常请帮忙看看

发布时间: 2012-02-17 17:50:42 作者: rapoo

程序总是在tc20中编译错误,请各位大哥帮忙看看

#include "Stdio.h "
#include "Conio.h "


void qsort(int v[],int i,int j);

int main(void)
{
int v[]={49,38,65,97,76,13,27};


int i,j;

i=0;
j=6;

qsort(v,i,j);

getch();
return 0;
}

void qsort(int v[],int left,int right)
{
int i,last;
void swap(int v[],int i,int j)


if(left> =right)
return;
swap(v,left,(left+right)/2);
last=left;

for(i=left+1;i <right;i++)
{
if(v[i] <v[left])
swap(v,++last,i);
swap(v,left,last);
qsort(v,left,last-1);
qsort(v,last+1,right);

}


void swap(int v[],int i,int j)
{
int temp;
temp=v[i];
v[i]=v[j];
v[j]=temp;

}


}

[解决办法]
函数内不能再有函数的定义.你的swap函数应该写在外面。
如下:
#include "Stdio.h "
#include "Conio.h "


void qsort(int v[],int i,int j);

int main(void)
{
int v[]={49,38,65,97,76,13,27};


int i,j;

i=0;
j=6;

qsort(v,i,j);

getch();
return 0;
}

void swap(int v[],int i,int j);
void qsort(int v[],int left,int right)
{
int i,last;



if(left> =right)
return;
swap(v,left,(left+right)/2);
last=left;

for(i=left+1;i <right;i++)
{
if(v[i] <v[left])
swap(v,++last,i);
swap(v,left,last);
qsort(v,left,last-1);
qsort(v,last+1,right);

}


}

void swap(int v[],int i,int j)
{
int temp;
temp=v[i];
v[i]=v[j];
v[j]=temp;

}


[解决办法]
在C里面,函数不可以嵌套定义。
[解决办法]
#include "Stdio.h "
#include "Conio.h "

void swap(int v[],int i,int j)
{
int temp;


temp=v[i];
v[i]=v[j];
v[j]=temp;

}
void qsort(int v[],int i,int j);

int main(void)
{
int v[]={49,38,65,97,76,13,27};


int i,j;

i=0;
j=6;

qsort(v,i,j);

getch();
return 0;
}

void qsort(int v[],int left,int right)
{
int i,last;


if(left> =right)
return;
swap(v,left,(left+right)/2);
last=left;

for(i=left+1;i <right;i++)
{
if(v[i] <v[left])
swap(v,++last,i);
swap(v,left,last);
qsort(v,left,last-1);
qsort(v,last+1,right);

}


}

读书人网 >C语言

热点推荐