C语言中三个数排序

#include<stdio.h>
int main(void)

{
int a,b,c,t;
printf("请输入三个数");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}
if(b>c)
{t=b;b=c;c=t;}
if(a>b)
{t=a;a=b,b=t;}
printf("从小到大:%d %d %d",a,b,c);
return 0;

}

三个 if 是什么关系

讲解以下运行的过程

最好多举几个例子

用C语言编写通过if将3个数排序:

#include<stdio.h>/*函数头:输入输出头文件*/

void main()/*空类型:主函数*/

{

inta,b,c,t;/*定义变量的数据类型为整型*/

printf("输入3个数,中间用空格隔开:");/*输出文字提示*/

scanf("%d%d%d",&a,&b,&c);/*输入3个数字*/

if(a<b)/*判断a是否小于b*/

{t=a;a=b;b=t;}/*是,则a、b的值互换*/

if(a<c)/*判断a是否小于c*/

{t=a;a=c;c=t;}/*是,则a、c的值互换*/

if(b<c)/*判断b是否小于c*/

{t=b;b=c;c=t;}/*是,则b、c的值互换*/

printf("从小到大:%d,%d,%d\n",c,b,a);/*输出从小到大排列的数*/

printf("从大到小:%d,%d,%d\n",a,b,c);/*输出从大到小排列的数*/

}

扩展资料

输入三个数,比较其大小,并从大到小输出。

#include<stdio.h>

int main(){

inta,b,c;

scanf("%d%d%d",&a,&b,&c);

if(a<b){

intflag=a;

a=b;

b=flag;

}

if(a<c){

intflag=a;

a=c;

c=flag;

}

if(b<c){

intflag=b;

b=c;

c=flag;

}

printf("%d%d%d",a,b,c);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-04
三个if是并列的关系
程序的功能是三个数里面两两比较,从小到达一次排序。
例如:输入3,2,1 (a = 3,b =2,c = 1)
第一个if语句
if(a>b)
{t=a;a=b;b=t;}
比较a和b的大小,明显a>b,所以利用中间变量t保存a,将b的值赋给a,再将中间变量t的值赋给b,执行过程是{t=a(3);a = b(2);b = t(3)},所以此时a=2,b=3,c =1.
第二个if语句
if(b>c)
{t=b;b=c;c=t;}
比较b和c的大小,明显b>c,将b和c的值调换,{t=b(3);b = c(1);c = t(3),此时a=2,b=1,c=3.
第三个if语句
if(a>b)
{t=a;a=b,b=t;}
再次比较a和b的大小,明显a>b,将a和b的值调换,{t=a(2);a = b(1);b = t(2)},此时a=1,b=2,c=3.
然后一次打印a,b,c的值:printf("从小到大:%d %d %d",a,b,c);本回答被提问者采纳
第2个回答  2009-11-07
三个if是并列关系,依次执行下来。
第一个if用来比较a和b的大小,如果a>b则交换a,b的值,保证a比b小。
第二个if用来比较b和c的大小,如果b>c则交换b,c的值,保证b比c小。
由于原来可能a比c大,第二次的比较与交换后,需要再次比较a和b。
这个程序的意思就是把大的数依次往后挪。
如果是4个数的话,那么if的顺序就应该是
if(a>b)
if(b>c)
if(c>d)
if(a>b)
if(b>c)
if(a>b)
第3个回答  2009-11-07
搂主的方法过于的烦杂,排序的,没有弄清楚算法
算法是:前两个中的小的数,与第三个数再比较,找出较小的数,这个数就是所要求的
#include<stdio.h>
int compare(int,int,int);
main()
{
int a,b,c;
printf("please input 3 numbers:\n");
scanf("%d%d%d",&a,&b,&c);
printf("3个数中最小的是:%d\n",compare(a,b,c));
}

int compare(int x,int y,int z)
{
int t;
t=x<y?x:y;
return (t<z?t:z);
}
第4个回答  2009-11-07
1)第一个if条件是a大于b时,a与b的值调换,此后ab比较a是较小的,b是较大的
2)第二个if条件是b大于c时,b与c的值调换,此后bc比较b是较小的,c是较大的
此时c是最大的
3)第三个if条件是a大于b时,a与b的值调换,此后ab比较a是最小的,b是较大的
相似回答