【1076】正常血压

1076:正常血压
时间限制: 1000 ms         内存限制: 65536 KB
提交数: 52448     通过数: 24578

【题目描述】

监护室每小时测量一次病人的血压,若收缩压在90-140之间并且舒张压在60-90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数。

【输入】

第一行为一个正整数n(n<100),其后有n行,每行2个正整数,分别为一次测量的收缩压和舒张压。

【输出】

输出仅一行,血压连续正常的最长小时数。

分析:关键是 连续 两字,如果不连续就要比较多段正常血压出现的时间长度,取最长的一段输出。

具体分析见代码注释:

#include <iostream>
using namespace std;

//如正常次数为1,则最长1个小时
//若 连续 两次正常,则最长2个小时

int main()
{
	int n;
	cin >> n;
	int p1, p2;//收缩,舒张压
	int num = 0;//记录连续正常的次数
	int sum = 0;//记录总共正常的次数,也就是最长血压正常小时数

	for (int i = 1; i <= n; ++i)
	{
		cin >> p1 >> p2;

		if ((p1 >= 90 && p1 <= 140) && (p2 >= 60 && p2 <= 90))
		{
			//满足,说明开始有正常血压测量结果
			num++;
		}
		else
		{
			//不满足,说明两次正常血压的测量时间不连续
			//将连续正常血压次数归零
			num = 0;
		}

		if (num > sum)
		{
			//满足,说明有连续正常血压
			//直接赋给sum即可
			sum = num;
		}
	}
	cout << sum;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值