5.4.1 while语句

练习5.14

int main() {
 //读取若干string对象
	vector<string> strVec;
	string str1;         //输入的字符串
	string maxStr;       //出现最多次的字符
	while (cin >> str1)  
		strVec.push_back(str1);

//查找连续出现的单词
	int num = 1;    //计数器次数
	int maxNum = 1; //最大出现次数
	auto beg = strVec.begin();
	auto end = strVec.end();
	while (beg != end - 1) //碰到最后一个字符串,退出循环
	{
		
		if (*beg == *(beg + 1)) { //如果此字符串与下一个字符串相同
			num++;               //计数器+1
			
		}
		else {                    //如果此字符串与下一个字符串不同
			if (num >  maxNum) {  //计数器如果大于保存的最大出现次数
				maxNum = num;     //存入新的最大出现次数
				num= 1;           //重新开始计数
				maxStr = *beg;
			}
		}
		beg++;              //移动到下一个字符串,循环重新开始
	}

//输出结果
	if (maxNum ==1)
		cout << "没有连续出现的单词";
	else
		cout << maxStr << " " << maxNum << endl;
	return 0;
	/*
	如果同时出现了2种及以上最大且相同次数的单词,仅出现排在前面的单词
	比如 now now now today today today, 结果仅出现now 3
	*/

}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值