数据流中判断最大最小值:
分析问题:
1、 输入一串形如“1 2 3 4 5 6 7 8 9”的int类型数据流。
2、 从中比较出最大数和最小的数。
分解任务:
1、 如何使用strinstream
2、 设计比较算法
读取数据流:
1、 使用stringstream类来进行数据的获取
2、然后依次读取出单个数据来进行比较
判断大小:
这里使用的是三目运算符来解决比较大小的问题;
三目运算符格式;(temp < min) ? temp : min;
代码示例:
#include <String>
#include <limits>
#include <iostream>
#include <sstream>
using namespace std;
string highAndLow(const string& numbers)
{
stringstream ss(numbers); //读取字符串流
int temp; // 比较的数据的副本
int min = numeric_limits<int>::max(); //这是库函数,
//返回int类型的最大值
int max = numeric_limits<int>::min(); //这是库函数
//返回int类型的最小值
while (ss >> temp) //挨个读取出流中单个字符串
{
min = (temp < min) ? temp : min; //若temp小于min,
//则新的min赋值为temp
max = (temp > max) ? temp : max; //若temp大于max,
//则新的max赋值为temp
};
return to_string(max) + " " + to_string(min); //返回最大最小值
}
int main()
{
string result= highAndLow("1 2 3 4 6 9 7 8 9");
}