C语言实现三个数大小比较

C语言三个数比较大小

1、常规算法进行比较

利用中间一个过渡变量进行判断,具体代码如下:

#include <stdio.h>
void main()
{
	int x,y,z,tmp;
	printf("请输入数字:");
	scanf("%d,%d,%d",&x,&y,&z);
	printf("输入的数字是:%d %d %d \n",x,y,z);
	if(x>y)
	{
		tmp=x;
		x=y;
		y=tmp;
	}
	if(x>z)
	{
		tmp=x;
		x=z;
		z=tmp;
	}
	if(y>z)
	{
		tmp=y;
		y=z;
		z=tmp;
	}
	printf("%d %d %d\n",x,y,z);
}

2、不需要过渡变量进行计算

具体的比较方法和第一种类似,具体代码如下:

#include <stdio.h>
void main()
{
	int x,y,z,tmp;
	printf("请输入数字:");
	scanf("%d,%d,%d",&x,&y,&z);
	printf("输入的数字是:%d %d %d \n",x,y,z);
	if(x>y)                  
	{
		x = x+y;			 
		y = x-y;
		x = x-y;
	}
	if(x>z)                
	{
		x = x+z;             
		z = x-z;
		x = x-z;
	}
	if(y>z)                  
	{
		y = y+z;            
		z = y-z;
		y = y-z;
	}
	printf("%d<%d<%d",x,x,z);
}

3、利用条件运算符进行比较

利用x>y?x:y原理进行比较,具体代码如下:

#include <stdio.h>
void main()
{
	int x,y,z,sum;
	printf("请输入数字:");
	scanf("%d,%d,%d",&x,&y,&z);
	printf("输入的数字是:%d %d %d \n",x,y,z);
	sum=x+y+z;
	printf("%d\n",(x>y?x:y)>z?(x>y?x:y):z);
	printf("%d\n",sum-(x>y?x:y)>z?(x>y?x:y):z-(x<y?x:y)<z?(x<y?x:y):z);
	printf("%d\n",(x<y?x:y)<z?(x<y?x:y):z);
}

4、结论

以上三种方法都可以进行三个数字的大小比较运算,如果还有其它的方法,希望大家给予评论,相互交流。

物联沃分享整理
物联沃-IOTWORD物联网 » C语言实现三个数大小比较

发表评论