首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-02-17 
程序总是在tc20中编译错误,请各位大哥帮忙看看 #includeStdio.h #includeConio.h voidqsort(intv[],in

程序总是在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);

}


}

热点排行