当前位置: 代码迷 >> C语言 >> 请高手们进来帮我看看,我哪错了????
  详细解决方案

请高手们进来帮我看看,我哪错了????

热度:326   发布时间:2008-06-14 10:49:58.0
请高手们进来帮我看看,我哪错了????
#include<stdio.h>
void quick_sort(int *a,int left,int right);
void swap(int &a,int &b);
void main(void)
{
    int array[10],i,sum=0;
    printf("请输入10个整数 ==>>\n");
    for(i=0;i<10;i++)
        scanf("%d",&array[i]);
    printf("\n");
        printf("输入的数为 ==>>");
    for(i=0;i<10;i++)
        printf("%3d",array[i]);
    quick_sort(array,0,10);
    for(i=2;i<8;i++)
        sum+=array[i];
    printf("\n平均数为==>%.2f\n",sum/6);
}
void quick_sort(int *a,int left,int right)
{
    int i,j,point;
    if(left<right)
    {
        i=left;
        j=right;
        point=a[left];
        while(1)
        {
            while(a[++i]<point);
            while(a[--j]>point);
            if(i>=j)
                break;
            swap(a[i],a[j]);
        }
        a[left]=a[j];
        a[j]=point;
        quick_sort(a,left,i-1);
        quick_sort(a,j+1,right);
    }
}
void swap(int &a,int &b)
{
    int p;
    p=a;
    a=b;
    b=p;
}
这个程序哪错了,怎么运行不了???????
谢谢!
搜索更多相关的解决方案: include  void  平均数  

----------------解决方案--------------------------------------------------------
怎么样又没有人理啊,唉!
----------------解决方案--------------------------------------------------------
为什么出现debug error????????  
FAINT!
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-14 03:34:45
learnerboy

等 级:论坛游民
帖 子:246
专家分:22
注 册:2007-11-11
  得分:0 
谢谢!
----------------解决方案--------------------------------------------------------
void swap(int &a,int &b)形参
和你的swap(a[i],a[j])实参类型不一致
so....
----------------解决方案--------------------------------------------------------
楼上他的参数没问题。。是引用类型
----------------解决方案--------------------------------------------------------
C语言没有引用类型吧。。。
----------------解决方案--------------------------------------------------------
在C++编译器里可以用引用啊!~
----------------解决方案--------------------------------------------------------
// fr.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include"stdio.h"
void quick_sort(int *a,int left,int right);
void swap(int &a,int &b);
int _tmain(int argc, _TCHAR* argv[])
{   
    int array[10],i;
    float sum=0;
    printf("请输入10个整数 ==>>\n");
    for(i=0;i<10;i++)
        scanf("%d",&array[i]);
    printf("\n");
        printf("输入的数为 ==>>");
    for(i=0;i<10;i++)
        printf("%3d",array[i]);
    quick_sort(array,0,9);
    printf("输出的数为 ==>>");
    for(i=0;i<10;i++)
        printf("%3d",array[i]);
    for(i=2;i<8;i++)
        sum+=array[i];
    printf("\n平均数为==>%.2f\n",sum/6);
    return 0;
}

void quick_sort(int *a,int left,int right)
{
    int i,point;
    if(left<right)
    {
        i=left-1;
        point=a[right];
        for (int j=left;j<=right-1;j++)
        if (a[j]<=point){i++;swap(a[i],a[j]);}
        swap(a[i+1],a[right]);
        quick_sort(a,left,i);
        quick_sort(a,i+2,right);
    }
}
void swap(int &a,int &b)
{
    int p;
    p=a;
    a=b;
    b=p;
}
----------------解决方案--------------------------------------------------------
  相关解决方案