c/c++,if嵌套(三只小猪体重问题)

三只小猪体重比较问题

引言

虽然三只小猪体重比较问题非常简单,其中只要用到if语句的嵌套就能解决了,但是对于像我这种新手而言,设计算法时出来不少问题,尤其是当三头小猪中,其中两头猪体重相等的算法设计要比体重不相等时要复杂一丢丢。

头文件部分

这里我使用c++来完成算法设计,C语言的话,其实也差不多,只是输入和输出的语法不一样

#include<iostream>
#include<string.h>

代码本体部分

这边使用vs2019来编译代码

//三只小猪称重问题
#include<iostream>
#include<string.h>


using namespace std;//命名空间

/*定义全局变量
三头小猪的体重*/
int a, b, c, max;

分别设计两种情况(不相等和相等时)
这是不相等的情况

/*设计函数,当三头小猪体重不相等时*/
int compara_ueql()
{


	if (a > b && a > c)//当小猪a体重最大时
	{
		cout << "max=a" << "=" << a << endl;
	}
	else if (b > a && b > c)//当b体重最大时
	{
		cout << "max=b" << "=" << b << endl;
	}
	else//最后判断当c才是最大时
	{
		cout << "max=c" << "=" << c << endl;
	}
	return max;//返回函数值max
}

这是相等的情况下,这里使用三目运算符比使用if,else if嵌套的结构更快,且行数更短,花括号越少,方便检查

int compara_eqling()//判断体重有相等的情况
{
	if (a == b)
	{
		max = (a > c ? a : c);
		cout << "max=" << max << endl;
	}
	else if (b == c)
	{
		max = (a > b ? a : b);
		cout << "max=" << max << endl;
	}
	else if (a == c)
	{
		max = (a > b ? a : b);
		cout << "max=" << max << endl;
	}
	
	return 0;
}

主函数部分

int main()
{
	cout << "请输入小猪abc的体重" << endl;//提示用户输入数值
	cin >> a >> b >> c;//输入数值
	system("cls")//稍微清一下屏
	cout << "三只小猪的体重值为:" <<a   <<   b<<   c<< endl;//在屏幕上显示输入的数值
		if (a!=b&&b!=c&&a!=c)//判断当abc互不相等时的情况
		{
			compara_ueql();//执行函数
		}
	    if (a==b||b==c||a==c)//判断abc其中两个存在相等情况时
		{
			compara_eqling();//执行函数
			if (a==b&&b==c&&a==c)//如果abc三者都相等时
			{
				cout << "三头小猪体重相等" << endl;
			}
		}
		getchar();
		system("pause");
		return 0;

}

接下来是三种情况的运行结果

在这里插入图片描述
在这里插入图片描述
其中两个数值相等时

结语

小猪体重问题是较简单的if选择嵌套问题,接下来将会和循环语句结合,再次优化这个问题的解决方法,提供三头小猪的体重的排序

当然有大佬给更加简单的算法的话,可以给小弟提供一点建议哈

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值