从字符串数据流(int类型)中判断最大最小值

数据流中判断最大最小值:


分析问题:

1、 输入一串形如“1 2 3 4 5 6 7 8 9”的int类型数据流。
2、 从中比较出最大数和最小的数。


分解任务:

1、 如何使用strinstream
2、 设计比较算法


读取数据流:

1、 使用stringstream类来进行数据的获取
2、然后依次读取出单个数据来进行比较

判断大小:

这里使用的是三目运算符来解决比较大小的问题;
三目运算符格式;(temp < min) ? temp : min;

true
tfalse
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");
}

测试结果:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值