三只小猪体重比较问题
引言
虽然三只小猪体重比较问题非常简单,其中只要用到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选择嵌套问题,接下来将会和循环语句结合,再次优化这个问题的解决方法,提供三头小猪的体重的排序
当然有大佬给更加简单的算法的话,可以给小弟提供一点建议哈
&spm=1001.2101.3001.5002&articleId=107722892&d=1&t=3&u=08f0c59a3a74443b91a888d0d55649d0)
1万+

被折叠的 条评论
为什么被折叠?



