" 6。现在改变循环的主体,使其只读取一个双精度 每一次。定义两个变量来跟踪哪个变量 最小,这是你目前看到的最大值。每 通过循环的时间写出输入的值。如果是的话 到目前为止最小的,写到目前为止最小的数字。如果是 到目前为止最大的,写出最大的数字"
我不知道如何在不使用矢量的情况下正确执行此操作。这是我的代码:
Option Strict On
以上是以前的步骤,我已用上面的代码解决了这些步骤:
- 编写一个由while循环组成的程序(每次循环)读入两个整数然后打印它们。退出 程序何时终止' |'进入。
醇>
- 更改程序以写出较小的值为:后跟较小的数字,较大的值为:后跟 更大的价值。
- 对程序进行扩充,使其在数字相等的情况下写入行(如果它们相等)。
- 更改程序,使其使用双打而不是整数。
- 更改程序,以便在写出后写出数字几乎相等,哪个更大,如果是两个则更小 数字相差不到1.0 / 100.
你能否给我一些提示如何做第6步。我有一些想法,但没有一个工作..
这是新代码:
#include "C:/std_lib_facilities.h"
int main()
{
double a, b,differ=0;
char c=' ';
cout << "Enter two values: \n";
while (c != '|' && cin >> a >> b )
{
if (a > b)
{
cout << "The smaller value is: "<< b << " and the larger value is: " << a << "\n \n";
differ = a - b;
if (differ < 1.0 / 100)
cout << "Numbers are almost equal\n\n";
}
else if (a < b)
{
cout << "The smaller value is: " << a << " and the larger value is: " << b << "\n \n";
differ = b - a;
if (differ < 1.0 / 100)
cout << "Numbers are almost equal\n\n";
}
else
{
cout << "These values are equal!\n";
}
cout << "Enter a character | to break loop: \n";
cin >> c;
}
cout << "You have exited the loop.\n";
keep_window_open();
}
答案 0 :(得分:3)
我不知道如何在不使用矢量的情况下正确执行此操作。
你不需要矢量。描述正确地说两个变量就足够了:
// Declare these variables before the loop
double smallestSoFar = std::numeric_limits<double>::max();
double largestSoFar = std::numeric_limits<double>::min();
修改您的循环以读入a
,而不是a
和b
。检查新输入的值与smallestSoFar
和largestSoFar
,进行打印,并根据需要重新分配最小和最大值。请注意,您第一次看到两个打印输出 - 到目前为止最大和最小。
答案 1 :(得分:0)
#include < iostream>
#include < cstdlib>
int main() {
double num_1 = 0;
double num_2 = 0;
double largest = 0;
double smallest = 0;
bool condition1 = true;
while (true) {
std::cin >> num_1;
if (num_1 > largest){
largest = num_1;
}
else if (num_1 < smallest) {
smallest = num_1;
}
std::cout << "The largest so far: " << largest << std::endl;
std::cin >> num_2;
if (condition1) {
smallest = largest;
condition1 = false;
}
if (num_2 < smallest) {
smallest = num_2;
}
else if (num_2 > largest) {
largest = num_2;
}
std::cout << "The smallest so far: " << smallest << std::endl;
}
system("pause");
return 0;
}
答案 2 :(得分:-1)
double large = 0;
double small = 0;
double input;
int counter = 0;
while (counter < 5) {
cin >> input;
cout <<"Large value: "<< large << '\t' <<"Small value: "<< small\
<< '\t' <<"Input value: "<< input << '\n';
if (input < small) {
cout << "The smallest value is " << input<<\
"\nthe largest value is "<< large<<'\n';
small = input;
}
else if (input > small&& input < large) {
cout << "The smallest value is " << small << \
"\nthe largest value is " << large<<'\n';
}
else if (input > small&& input > large) {
cout << "The smallest value is " << small << \
"\nthe largest value is " << input << '\n';
large = input;
}
counter += 1;