C语言 三个数排序

发布网友 发布时间:2022-04-24 20:44

我来回答

3个回答

热心网友 时间:2022-05-03 01:26

两种方法
简单方法
#include<stdio.h>
int
main(void)
{
int
a,
b,
c,
t;
printf("软件的功能是为3个数字排序,从大到小");
printf("请输入三个数字,以空格相间隔:\n");
scanf("%d
%d
%d",
&a,
&b,
&c);
if
(a
<
b)
{
t
=
a;
a
=
b;
b
=
t;
}
if
(a
<
c)
{
t
=
a;
a
=
c;
c
=
t;
}
if
(b
<
c)
{
t
=
b;
b
=
c;
c
=
t;
}
printf("a=%d
b=%d
c=%d",
a,
b,
c);
getchar();
getchar();
return
0;
}
------------------------------------这是分割线------------------------------------------------
复杂方法
#include<stdio.h>
int
main(void)
{
int
x,
y,
z;
printf("此程序为你输入的三个数值自动排序,用a表示最大,b为中间,c为最小\n");
printf("请输入三个不同整数(以空格键相隔):\n");
scanf_s("%d
%d
%d",&x,&y,&z);
//
printf("x=%d
y=%d
z=%d\n",x,y,z);
if
(x
>
y
&&
y
>z)
printf("a=%d,b=%d,c=%d\n",x,y,z);
else
if
(x
>
z
&&
z
>
y)
printf("a=%d,b=%d,c=%d\n",x,z,y);
else
if
(y
>
x
&&
x
>
z)
printf("a=%d,b=%d,c=%d\n",y,x,z);
else
if
(y
>
z
&&
z
>
x)
printf("a=%d,b=%d,c=%d\n",y,z,x);
else
if
(z
>
x
&&
x
>
y)
printf("a=%d,b=%d,c=%d\n",z,x,y);
else
if
(z
>
y
&&
y
>
x)
printf("a=%d,b=%d,c=%d\n",z,y,x);
else
printf("有相同数值无法比较大小,请重新输入不同数值\n");
getchar();
getchar();
return
0;
}

热心网友 时间:2022-05-03 02:44

其实你这样复杂了
看第一个
x>y
你的操作将
x

y

较大的那个值放进了
y
然后看
y>z
你的操作把
y

z
中的较大值
放进了z中
其实
z
就是
最大值
然后
另外两个
变量
x
,
y
里记录的就是
第二大
和第三大的值
(你这句好像错了)
如果
x
>
y


temp
=x;
x=y;
y=
temp;
这样
x
中储存的值就是最小值
然后可得 x
<
y
<z

热心网友 时间:2022-05-03 04:19

这个要看你输入的数,i可以从1开始;
如果你输入的数前几个保持从大到小的顺序;则。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com