41【学长出题】寒冷的北京:南方同学对北京的直接感受【北理工乐学C语言作业】

本文介绍了一个编程题目,要求在给定连续n天的温度数据中找到最长的降温持续时间。使用C语言实现,通过遍历数组并记录降温和非降温和最长降温和其起始结束日期。
摘要由CSDN通过智能技术生成

【题目背景】
    fy万万没有想到北京会这么冷,每天穿着单薄的外套被寒风侵蚀,瑟瑟发抖中敲击键盘。生活在成都的他未曾料到10月刚刚过去北京就开始降温...无奈的他只好出一道题来表达自己的感慨。

【题目描述】
    给出连续n天的温度,求出一个最长的时间段,在这一段时间中一直降温(温度相同也算)。

【输入格式】
    第一行,一个正整数n;
    第二行,n个整数;

【输出格式】
    两个整数,l<=r。
    表示在从第l天和第r天之间一直降温。若有多个答案,输出l最小的。

【数据范围】
    1<=n<=1000000
    -20<=温度<=+20

#include<stdio.h>  
int main(void){  
    int n,i,cnt=0,temp=21,l=1,r=1,max=0,L=0,R=0;  
    char tem[1000000];  
    scanf("%d",&n);  
    for (i=0;i<n;i++){  
        scanf("%d",&tem[i]);  
    }  
    for(i=0;i<n;i++){  
        if(tem[i]<=temp){  
            cnt+=1;  
            r=i+1;  
            temp=tem[i];  
        }  
        else{  
            if(cnt>max) {  
                max=cnt;  
                L=l;  
                R=r;  
            }  
            l=i+1;  
            r=i+2;  
            cnt=1;  
            temp=tem[i];  
        }  
          
    }  
    if(cnt>max) {  
                max=cnt;  
                L=l;  
                R=r;  
            }  
    if(L==0) printf("1 %d\n",n);  
    else printf("%d %d\n",L,R);  
  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值