三个整型数值进行比较:
(1)三个数值,各不相同,则求出最大值
(2)三个数值,其中两个相等,则列出相等数和不相等的数
(3)三个数值,都相等,列出相同数。
分析图:
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main(void)
{
//初始化变量
int a = 0;
int b = 0;
int c = 0;
//开始获取数值
printf("请输入第一个的值:%d",a);
scanf("%d",&a);//读取第一个数值
printf("请输入第二个的值:%d",b);
scanf("%d", &b);//读取第二个数值
printf("请输入第三个的值:%d", c);
scanf("%d",&c);//读取第三个数值
//实现 a>b>c; a>c>b; b>a>c; b>c>a; c>a>b; c>b>a;这六个条件
if (a != b && a != c && b != c)//先提出条件,这三个数互不相同
{
if (a > b)
{
if (a>c)//如果a>c,也就是a>c和a>b(进入这个选择的前提条件),也就满足了a>c>b和a>b>c了
{
printf("最大值是第一个数:%d\n",a);
}
else //如果a<c,也就是满足了c>a>b
{
printf("最大值是第三个数:%d\n",c);
}
}
else//如果a>b被否定了,也就反应出b>a.
{
if (b > c)//如果b>c,也就是b>a和b>c,也就满足了b>a>c和b>c>a了
{
printf("最大值是第二个数:%d\n",b);
}
else//如果c>b,也是满足了c>b>a
{
printf("最大值是第三个数:%d\n",c);
}
}
}
//实现a=b=c和实现a>b且b=c;b>a且a=c; c>a且a=b
if (a == b & b == c & c == a) //实现a=b=c
{
printf("这三个数值相等,都是:%d\n",a);
}
else//可能是 a不等于c,a不等于b, 也可能是 c不等于a
{
if (a == b && c>a)//实现c>a且a=b
{
printf("最大值是第三个:%d,第一个和二个值相等:%d\n",c,a);
}
else if (a == c && b > a)//实现b>a且a=c
{
printf("最大值是第二个:%d,第一个值等于第三个值:%d\n",b,a);
}
else if (b == c && a > b)//实现a>b且b=c
{
printf("最大值是第一个:%d,第二个值等于第三个值:%d\n",a,b);
}
}
return 0;
}