我写了一个冒泡排序法的函数,就是对任意一个数组,将参数输入进去之后自动排序,最后输出排序后的数组。像这样的函数是有返回值的函数还是没有返回值的函数呢
void bubble(float a[],int n)
{
float o=0;
int i;
for (i = 0; i <= n-2; i++)
{
if (a[i] >= a[i+1])
o = a[i+1];
a[i + 1] = a[i];
a[i] = o;
}
你这只是进行了一趟排序,冒泡排序是双循环
另外if下面的3行都是if代码块内容,要用大括号括起来
void bubble(float a[],int n)
{
float o=0;
int i,j;
for(j=0;j<n-1;j++)
for (i = 0; i <n-i-j; i++)
{
if (a[i] >= a[i+1])
{
o = a[i+1];
a[i + 1] = a[i];
a[i] = o;
}
}
}
有点问题。void类型是不需要返回值的。
void bubble(float n,int a[])
{
int i,j;
float temp;
for(i=0;i<n-1;i++)//n个数的数列总共扫描n-1次
{
for(j=0;j<n-i-1;j++)//每一趟扫描到a[n-i-2]与a[n-i-1]比较为止结束
{
if(a[j]>a[j+1])//后一位数比前一位数小的话,就交换两个数的位置(升序)
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
}