芒课 —— 3268试题

问题遇到的现象和发生背景

如果序列中相邻两个数的左边一个值小于右边的值,则我们说这两个值是递增的。给定一个数值序列,请输出序列中最长的递增子序列(子序列是指原始序列中的连续的一段)的长度。

输入说明
第一行一个整数,表示序列中数值的个数n(1<n<10000)。第二行,n个用空格隔开的整数,表示序列

输出说明
一个整数,表示符合条件的序列长度。如果不存在递增子序列,输出0.

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

每两个数比较,符合规则时计数加1.不符合规则时判断当前计数是否最大。然后重新开始计数

#include <stdio.h>
int main()
{
    int i,t=0,max=0,n,a[10000] = {0};
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=1;i<n;i++)
    {
        if(a[i] > a[i-1])
            t++;
        else
        {
            if(t>max)
                max = t;
            t=0;
        }
    }
    if(t > max)
        max = t;
    if(max > 0)
        max++;
    printf("最长递增长度:%d\n",max);
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632