用冒泡法对数组的元素进行由大到小进行排序?

用冒泡法对数组的元素进行由大到小进行排序,函数void sort (int array[] ,int n)为排序,形式参数为数组名和数组元素的个数,算法用冒泡法。在main函数中,通过键盘输入10个数,赋值给数组,然后调用sort函数进行排序,最后依次输出数组排序后的元素。

void sort(int array[],int n)
{
int temp;
int i, j;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j <n - i - 1; j++)
{
if(a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
void main()
{
int a[N]=getchr()&&getchar!=\0;
printf("排序前的数据:");
for(i=0;i<m;i++)
printf("%d ",a[i]);
printf("\n");
fun(a,m);
printf("排序后的顺序:");
for(i=0;i<m;i++)
printf("%d ",a[i]);
printf("\n");
}

请问这样写对吗?

给你一个完整的:

#include <stdio.h>

void sort(int a[],int n)
{
int temp,i,j;
for (i = 0; i < n - 1; i++)
for (j = 0; j <n - i - 1; j++)
if(a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
int main()
{
int a[20],i=0,n;
printf("请输入要输入的元素个数:");
scanf("%d",&n);
for(;i!=n;i++)
scanf("%d",&a[i]);

printf("排序前的数据:");
for(i=0;i!=n;i++)
printf("%d ",a[i]);
printf("\n");

sort(a,n);
printf("排序后的顺序(递减):");
for(i=0;i!=n;i++)
printf("%d ",a[i]);
printf("\n");

return 1;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-17
void fun(int a[],int n)
{
int temp;
int i, j;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j <n - i - 1; j++)
{
if(a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
相似回答