三个数从小到大排序
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
0
-
描述
-
现在要写一个程序,实现给三个数排序的功能
-
输入
- 输入三个正整数 输出
- 给输入的三个正整数排序 样例输入
-
20 7 33
样例输出
-
7 20 33
来源
- [张洁烽]原创 上传者
我的思考:
输入三个整数排序
冒泡或者选择法、利用数组、利用两个for循环
我的程序:
#include<stdio.h> int main(){ int i,j,t; int a[3]; for(i = 0; i < 3; i++) //输入三个整数 scanf("%d",&a[i]); for(i = 0; i < 3; i++){ //冒泡排序 for(j = 0; j < 3 - i; j++){ if(a[j] > a[j+1]){ //交换数值 t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } printf("%d ",a[i]); } printf("\n"); return 0; }
最优程序:
01.
#include <stdio.h>
02.
int
main()
03.
{
04.
int
a,b,c,an[3],i,t,j,max,flag;
05.
scanf
(
"%d %d %d"
,&an[0],&an[1],&an[2]);
06.
for
(i=0;i<3;i++)
07.
{
08.
t=max=an[i];
09.
flag=i;
10.
for
(j=i;j<3;j++)
11.
if
(an[j]>t)
12.
{
13.
max=an[j];
14.
flag=j;
15.
};
16.
t=an[i];
17.
an[i]=max;
18.
an[flag]=t;
19.
}
20.
for
(i=2;i>=0;i--)
21.
printf
(
"%d "
,an[i]);
22.
return
0;
23.
}