Stroustrup C++书籍。如何跟踪while循环中哪个整数输入最小和最大? 我对C++编程和编程只是新的,我在第4章练习6上用C++第二版来完成StruouTUP的编程原理和实践。
问题内容如下: 编写一个由while循环组成的程序,该循环读取两个int,然后打印它们。 更改程序以写出较小的值和较大的值。 等等等等。 现在更改循环体,使其每次仅读取一个双精度值。定义两个变量来跟踪到目前为止看到的最小值和最大值。每次通过循环写出输入的vlue如果是迄今为止最小的,则在数字后写出迄今为止最小的vlue。如果是迄今为止最大的,请在数字后写下迄今为止最大的数字 基本上,我很难在所有循环中保持最小值和最大值。因为,现在发生的一切是,每次我输入两个数字,它只会显示我之前在程序中已经实现的最大/最小的数字。它不会保持最大/最小值,直到其中一个循环中有一个较小/较大的值 我希望我能把情况解释清楚。我相信这只是一个非常简单的修复,我对编程是新手。 这是我目前的代码:Stroustrup C++书籍。如何跟踪while循环中哪个整数输入最小和最大? 我对C++编程和编程只是新的,我在第4章练习6上用C++第二版来完成StruouTUP的编程原理和实践。,c++,C++,问题内容如下: 编写一个由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{}语句时,大括号内的代码将被执行,在本例中为零,因此它们是多余的。