谢谢!
----------------解决方案--------------------------------------------------------
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;
}
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
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;
}
----------------解决方案--------------------------------------------------------