C语言 写一主函数输入一组数,写一子函数,实现对该数组的冒泡(从小到大和从大到小各一个程序)排序并输

如题所述

冒泡法,从小到大
# include <stdio.h>
void sx(int x[],int n) //冒泡法从小到大
{ int i,j,t;
for(j=0;j<n-1;j++)
for(i=0;i<n-j;i++)
if(x[i]>x[i+1]) {t=x[i];x[i]=x[i+1];x[i+1]=t;}
}
void main()
{ int a[10],i;
printf("Input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sx(a,10);
printf("从小到大:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
}

比较法从大到小:
# include <stdio.h>
void sx(int x[],int n)
{ int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(x[i]<x[j]) {t=x[i];x[i]=x[j];x[j]=t;}
}
void main()
{ int a[10],i;
printf("Input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sx(a,10);
printf("cong da dao xiao:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-23
#include <stdio.h>

void shengxu(int a[])
{
int i,j,t;
printf("从小到大排列:\n");
for (i = 0; i < 9; ++i)
{
for (j = i+1; j < 10; ++j)
{
if (a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for (i = 0; i < 10; ++i)
printf("%d ", a[i]);
printf("\n");
}
void jiangxu(int a[])
{
int i,j,t;
printf("从大到小排列:\n");
for (i = 0; i < 9; ++i)
{
for (j = i+1; j < 10; ++j)
{
if (a[i] < a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for (i = 0; i < 10; ++i)
printf("%d ", a[i]);
printf("\n");
}
void main()
{
int a[10];
int i;
printf("请输入10个数:\n");
for (i = 0; i < 10; ++i)
{
printf("第%d个数:", i+1);
scanf("%d", &a[i]);
}
shengxu(a);
jiangxu(a);
}本回答被网友采纳