John_Gcn 2023-03-29 20:36 采纳率: 83.3%
浏览 34
已结题

关于C语言的问题,如何解决?

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

输入格式:
输入n,表示接下来有n组血压值,每组数据包含两个正整数,分别为收缩压和舒张压。

输出格式:
输出该病人保持正常血压的最长小时数。

输入样例:
5
120 80
141 80
110 70
115 80
140 90
输出样例:
2

#include <stdio.h>

int main()
{
    int n;
    int res = 0, cnt = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i ++ )
    {
        int a, b;
        scanf("%d%d", &a, &b);
        if (a >= 90 && a <= 140 && b >= 60 && b <= 90) cnt ++ ;
        else cnt = 0;
        res = res > cnt ? res : cnt;
    }
    printf("%d", res);
    return 0;
}




输出时答案为3,与开头题目输出示例不不符

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2023-03-29 21:07
    关注

    改为:
    res = res > cnt-1 ? res : cnt-1;
    因为最长小时数等于测试正常次数减去1。两次测试正常才是一个小时正常。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月29日
  • 已采纳回答 3月29日
  • 创建了问题 3月29日