Stroustrup C++书籍。如何跟踪while循环中哪个整数输入最小和最大? 我对C++编程和编程只是新的,我在第4章练习6上用C++第二版来完成StruouTUP的编程原理和实践。

Stroustrup C++书籍。如何跟踪while循环中哪个整数输入最小和最大? 我对C++编程和编程只是新的,我在第4章练习6上用C++第二版来完成StruouTUP的编程原理和实践。,c++,C++,问题内容如下: 编写一个由while循环组成的程序,该循环读取两个int,然后打印它们。 更改程序以写出较小的值和较大的值。 等等等等。 现在更改循环体,使其每次仅读取一个双精度值。定义两个变量来跟踪到目前为止看到的最小值和最大值。每次通过循环写出输入的vlue如果是迄今为止最小的,则在数字后写出迄今为止最小的vlue。如果是迄今为止最大的,请在数字后写下迄今为止最大的数字 基本上,我很难在所有循环中保持最小值和最大值。因为,现在发生的一切是,每次我输入两个数字,它只会显示我之前在程序中已经实现

问题内容如下: 编写一个由while循环组成的程序,该循环读取两个int,然后打印它们。 更改程序以写出较小的值和较大的值。 等等等等。 现在更改循环体,使其每次仅读取一个双精度值。定义两个变量来跟踪到目前为止看到的最小值和最大值。每次通过循环写出输入的vlue如果是迄今为止最小的,则在数字后写出迄今为止最小的vlue。如果是迄今为止最大的,请在数字后写下迄今为止最大的数字

基本上,我很难在所有循环中保持最小值和最大值。因为,现在发生的一切是,每次我输入两个数字,它只会显示我之前在程序中已经实现的最大/最小的数字。它不会保持最大/最小值,直到其中一个循环中有一个较小/较大的值

我希望我能把情况解释清楚。我相信这只是一个非常简单的修复,我对编程是新手。 这是我目前的代码:

#include "../../../std_lib_facilities.h";

int main()
{
    double val1;
    double val2;
    double largest =0  ;
    double smallest= 0 ;
    double input = 0;

    char exit = ' ';

    while (exit != 'x') {
        cout << "Please enter two numbers.\n";
        cin >> val1 >> val2;
        cout << "The two values you have entered are: " << val1 << " and " << val2 << "\n";

        if (val1 < val2) {
            cout << "The smaller value is: " << val1 << ". The larger value is: " << val2 << ".\n";
            if (val2 - val1 <= .5)
                cout << "The numbers are almost equal.\n";
        }
        else if (val2 < val1) {
            cout << "The smaller value is: " << val2 << ". The larger value is: " << val1 << ".\n";
            if (val1 - val2 <= .5)
                cout << " The numbers are almost equal.\n";
        }
        else
            cout << "The two numbers " << val1 << " are equal!\n"; \

            if (val1 < smallest && val2>val1) {
                cout << val1 << " is the smallest so far.\n";
                smallest = val1;
            }
            else if (val2<smallest && val1>val2) {
                cout << val2 << " is the smallest so far.n";
                smallest = val2;
            }
            else {}


            if (val1 > largest && val2 < val1) {
                cout << val1 << " is the largest so far.\n";
                val1 = largest;
            }
            else if (val2 > largest && val1 < val2) {
                cout << val2 << " is the largest so far.\n";
                val2 = largest;
            }
            else {

            }

            cout << "If you would like to exit this program, please enter x. Otherwise, enter any other key to continue. \n";
            cin >> exit;
    }
}

您没有正确跟踪最大值

            cout << val1 << " is the largest so far.\n";
            val1 = largest;  // Wrong
需要

            cout << val1 << " is the largest so far.\n";
            largest = val1;
            cout << val2 << " is the largest so far.\n";
            largest = val2;

需要

            cout << val1 << " is the largest so far.\n";
            largest = val1;
            cout << val2 << " is the largest so far.\n";
            largest = val2;

您没有正确跟踪最大值

            cout << val1 << " is the largest so far.\n";
            val1 = largest;  // Wrong
需要

            cout << val1 << " is the largest so far.\n";
            largest = val1;
            cout << val2 << " is the largest so far.\n";
            largest = val2;

需要

            cout << val1 << " is the largest so far.\n";
            largest = val1;
            cout << val2 << " is the largest so far.\n";
            largest = val2;

为什么在这行代码后面有一个\ cout Hi。谢谢你的建设性建议。我不知道我为什么把\放在那里。我可能很累了。对于else的说法,我总是被告知你不一定需要花括号!?!?我在末尾添加了else语句,这样,如果所有条件都不匹配,代码就不会执行任何操作。如果你能纠正这些假设中的任何一个,我将非常感激。首先,一个没有大括号的else语句只会执行紧跟在它后面的代码,直到一个分号;到达。for和while语句也是如此。我总是在anyif-elseif-else,for或while语句中使用大括号,因为不使用大括号会导致愚蠢的、有时很难发现的错误。第二,如果if语句中没有一个条件的结果为true,那么就意味着不会执行任何操作。当您添加else{}语句时,大括号内的代码将被执行,在本例中为零,因此它们是多余的。谢谢你的建设性建议。我不知道我为什么把\放在那里。我可能很累了。对于else的说法,我总是被告知你不一定需要花括号!?!?我在末尾添加了else语句,这样,如果所有条件都不匹配,代码就不会执行任何操作。如果你能纠正这些假设中的任何一个,我将非常感激。首先,一个没有大括号的else语句只会执行紧跟在它后面的代码,直到一个分号;到达。for和while语句也是如此。我总是在anyif-elseif-else,for或while语句中使用大括号,因为不使用大括号会导致愚蠢的、有时很难发现的错误。第二,如果if语句中没有一个条件的结果为true,那么就意味着不会执行任何操作。当您添加else{}语句时,大括号内的代码将被执行,在本例中为零,因此它们是多余的。