C语言:输入10个数依次从大到小排序!

如题所述

用数组来存放十个数字,使用“冒泡排序”来实现排序。10个数字需进行9轮扫描,每次扫描时比较相邻的二个数,如它们不符合要求的大小关系,就交换它们的位置。第一轮扫描结束时,最大的数就“沉”到最后。于是第二的范围就少了一个数。再进行第二两栖型、第三轮,…——直到第9轮就完成了。最后输出结果。
#include<stdio.h>
int
main()
{
int
a[10],i,j,t;
printf("请输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf("排序以后的数:\n");
for(i=0;i<10;i++)
printf("%d
",a[i]);
printf("\n");
system("pause");
return
0;
}
如果要从大到小排,只要把上面的交换条件
if(a[j]>a[j+1])换为
if(a[j]<a[j+1])就可以了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-11
排3个以上的话基本属于排序算法的节奏了,以后会学到的,你与其想怎么排10个数不如想想,输入是字母,符号,空格之类的时候怎么处理
初学c建议看书顺序
1.
《c程序设计

谭浩强
2.
《c和指针》
人民邮电出版社
3.
《c程序设计语言》
机械工业出版社
#include

int sort(int a ,int b ,int c)
{
int temp ;
if (a <= b) {temp = a ; a =b ; b = temp ;}; //ab比较,较大的数赋值给a,小的赋值给b
if (a <= c) {temp = a ; a =c ; c = temp ;}; //ac比较,较大的数赋值给a,小的赋值给c
if (b <= c) {temp = b ; b =c ; c = temp ;}; //bc比较,较大的数赋值给b,小的赋值给c
printf("%d,%d,%d",a,b,c); //从大到小依次是abc
return 0 ;
}
int main ()
{
int a ,b ,c ;
scanf ("%d\n%d\n%d",&a,&b,&c);
sort(a,b,c);
return 0 ;
}
第2个回答  2020-04-20
#include
<stdio.h>
int
main()
{
int
a[10],
i,
j,t;
//定义数组,及其它变量
for(i=0;i<10;i++)
{
scanf("%d",&t);//输入到临时变量t
for(j
=
i;
j
>
0;
j
--)//查找插入位置
{
if(a[j-1]
>=
t)
break;
a[j]
=
a[j-1];
//移动元素,让出插入的空间
}
a[j]
=
t;//插入
}
for(i=0;i<10;i++)
//输出
{
printf("%d,",a[i]);
}
printf("\n");
return
0;
}
第3个回答  2021-01-04

C语言的for循环的依次打印从一到十的数字,看看就会了