-3 c++ if-statement
这是我为一个任务找到的程序,它应该找到3个数字的最小值和最大值.当我以这种方式运行程序时,该程序可以工作,但是我无法遵循原因的逻辑.
#include <iostream>
using namespace std;
int main()
{
double num1 = 0, num2 = 0, num3 = 0, max = 0, min = 0;
cout << "CMPSC 201-Lab4 " << endl << "Find max and min among 3 numbers" << endl;
cout << "Please enter 3 numbers seperated by a space: ";
cin >> num1 >> num2 >> num3;
min = num1;
if (num2 < min)
{
min = num2;
}
else
{
min = num3;
}
max = num1;
if (num2 > max)
{
max = num2;
}
else
{
max = num3;
}
cout << endl;
cout << "The smallest number among (" << num1 << "," << num2 << "," << num3 << ",";//Outputs the numbers entered and displays min
cout << ") is " << min << endl;
cout << "The largest number among (" << num1 << "," << num2 << "," << num3 << ",";//Outputs the numbers entered and displays max
cout << ") is " << max << endl;
return 0;
Run Code Online (Sandbox Code Playgroud)
下面是该程序的代码.我想到的方法是将三个数字中的第一个设置为min,然后使用if语句根据其他数字的值更改min变量.这适用于不同顺序的3个数字的任意组合.
我看到的一个问题是,如果该语句为真,那么min将为数字2,因为if-else的第一部分将执行.但是说数字3更小它将如何成为自那部分if-else以来的min不会发生.如果代码是if-else,那么这将是有意义的,但事实并非如此.
因此,我没有看到某些东西,或者确实如此以某种方式使它成为if-else if语句.对不起,如果这令人困惑我不知道如何更好地说出来.
min = num1;
if (num2 < min)
{
min = num2;
}
else
{
min = num3;
}
Run Code Online (Sandbox Code Playgroud)
这不可行,因为min永远不会num1; 它立即被要么覆盖num2或num3.
一个if语句为控制流程提供了两个选择,这是不够的.由于这是一个练习,我会让其他人自己弄清楚;)