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

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

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

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

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

#include 

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,与开头题目输出示例不不符

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

cnt应该是-1而不是0
因为一次正常,那么并不是1小时,而是开始计时