我刚开始学习c++,正在学习与cin、cin.get相关的主题。其中一个作业要求是:
编写一个程序,读取一系列整数,并打印出最大和最小的数字。
您可以假设用户的输入始终有效。
您可以假设列表中的数字由一个空格字符分隔,并且在列表中的最后一个数字后面跟随换行符。
实现循环,重复执行上述操作,直到用户请求退出。
我想到的代码是:
我的最后一个问题是:我如何满足这个任务的要求“实现循环,直到用户请求退出,上述操作将被重复执行。”
编写一个程序,读取一系列整数,并打印出最大和最小的数字。
您可以假设用户的输入始终有效。
您可以假设列表中的数字由一个空格字符分隔,并且在列表中的最后一个数字后面跟随换行符。
实现循环,重复执行上述操作,直到用户请求退出。
我想到的代码是:
using namespace std;
int main()
{
char ch = ' ';
int max=0;
do
{
int x;
cin >> x;
ch = cin.get();
if (max = 0) { max = x; };
if (x > max) { max = x; };
} while (ch != '\n');
cout << "maximum=" << max << endl;
return 0;
}
我本以为这会返回列表中的最大数值。但事实证明它只会返回列表中的最后一个整数。
而且我还不太理解这行代码的作用:
cin >> x;
ch = cin.get();
使程序能够接受一组数字列表。cin不应该会要求用户输入一些内容吗?还有cin.get呢?换句话说,用户不应该遇到两次输入吗?但是为什么当我运行时只被要求输入一次?
根据本帖子中的评论进行了一些调整后,我得出了以下代码:
int main()
{
cout << "Enter the list of integer numbers: ";
char ch = ' ';
int max=0;
int min = 0;
do
{
int x;
cin >> x;
ch = cin.get();
if (max == 0) { max = x; };
if (x > max) { max = x; };
if (min == 0) { min = x; };
if (x < min) { min = x; };
} while (ch != '\n');
cout << "maximum=" << max << endl;
cout << "minimum=" << min << endl;
return 0;
我的最后一个问题是:我如何满足这个任务的要求“实现循环,直到用户请求退出,上述操作将被重复执行。”