比较问题算是C++入门里相对初级的问题了,解决的问题的方式有许多种,这里我介绍最为初始的if嵌套语句方法。
例题如下:
有三只小猪A、B、C,请分别输入三只小猪的体重的体重,并且判断哪只小猪最重,哪只小猪第二重,哪只小猪第三重(最轻)?
解题思路:
这样的比较问题方法很简单且常规,无非是取出三只其中的两只小猪进行比较,再将体重大的与另外只小猪进行比较,体重最大的小猪很快就分辨出来,最后再将剩下的两只小猪进行比较排出第二和第三。一共可能的情况有2^3-1=7(种可能性),其中包括三只小猪体重相等的情况额外考虑。
开发工具:
Visual Studio 2022
源代码:
#include <iostream>
using namespace std;
int main()
{
int num1 = 0;
int num2 = 0;
int num3 = 0;
cout << "请输入小猪A的体重" << endl;
cin >> num1;
cout << "请输入小猪B的体重" << endl;
cin >> num2;
cout << "请输入小猪C的体重" << endl;
cin >> num3;
cout << "小猪A的体重是:" << num1 << "kg" << endl;
cout << "小猪B的体重是:" << num2 << "kg" << endl;
cout << "小猪C的体重是:" << num3 << "kg" << endl;
if (num1 > num2 && num1 > num3)
{
cout << "小猪A最重!" << endl;
if (num2 < num3)
{
cout << "小猪C第二重,小猪B第三重!!!" << endl;
}
else
{
cout << "小猪B第二重,小猪C第三重!!!" << endl;
}
}
else if (num3 > num2 && num3 > num1)
{
cout << "小猪C最重!" << endl;
if (num1 > num2)
{
cout << "小猪A第二重,小猪B第三重!!!" << endl;
}
else
{
cout << "小猪B第二重,小猪A第三重!!!" << endl;
}
}
else if (num2 > num1 && num2 > num3)
{
cout << "小猪B最重!" << endl;
if(num1 > num3)
{
cout << "小猪A第二重,小猪C第三重!" << endl;
}
else
{
cout << "小猪C第二重,小猪A第三重!" << endl;
}
}
else {
cout << "三只小猪一样重!"<<endl;
}
system("pause");
return 0;
}
运行出来可能出现的问题:
如果你发现你在输入某些体重数值时他进行比较,而输入某些体重数值却不进行比较时,排除编程基本语法错误,很有可能是if语句的条件设置的有歧义导致了if语句没有执行或者个别if语句不执行的情况,根据这一问题现象可以排查循环条件加以修改。