有一浮点型数组A,用C语言写一函数实现对浮点数组A进行降序排序,并输出结果要求要以数组A作为函数的入口,请用冒泡和选择各写一遍
#include <stdio.h>
void bubble(float *pa, int N)
{
int i,j;
float temp;
for(i=0; i<N-1; i++)
{
for(j=0; j<N-1-i; j++)
{
if(pa[j] < pa[j+1])
{
temp = pa[j];
pa[j] = pa[j+1];
pa[j+1] = temp;
}
}
}
printf("冒泡排序后:\n");
for(i=0; i<N ;i++)
{
printf("%g ",pa[i]);
}
putchar(10);
return ;
}
void selection(float *pa,int N)
{
int i,j,sign,min;
float temp;
for(i=0; i<N-1; i++)
{
sign=i;
for(j=i+1; j<=N-1; j++)
{
if(pa[sign] < pa[j])
{
sign = j;
}
}
if(sign != i)
{
temp = pa[sign];
pa[sign] = pa[i];
pa[i] = temp;
}
}
printf("选择排序后:\n");
for(i=0; i<N ;i++)
{
printf("%g ",pa[i]);
}
putchar(10);
return ;
}
int main(int argc, const char *argv[])
{
int N,i,j;
printf("请输入要排序的数的个数:");
scanf("%d",&N);
float arr[N];
printf("请输入%d个浮点型数:\n",N);
for(i=0; i<N ;i++)
{
scanf("%f", &arr[i]);
}
bubble(arr,N);
selection(arr,N);
return 0;
}