以下是使用C++完成的代码:

#include <iostream>

int main() {
    int n;
    std::cin >> n;

    int* num = new int[n];
    for (int i = 0; i < n; i++) {
        std::cin >> num[i];
    }

    int maxLen = 0;
    int currLen = 0;
    for (int i = 1; i < n; i++) {
        if (num[i] < num[i-1]) {
            currLen++;
        } else {
            currLen = 0;
        }
        if (currLen > maxLen) {
            maxLen = currLen;
        }
    }

    std::cout << maxLen << std::endl;

    delete[] num;
    return 0;
}

首先,我们读取输入的数字个数n,并为存储数字串的数组num分配内存。

然后,我们使用一个循环读取num中的每个数字。

接下来,我们使用两个变量maxLen和currLen来记录最长连续递减子串的长度。currLen表示当前连续递减子串的长度,初始化为0。maxLen表示最长连续递减子串的长度,初始化为0。

然后,我们使用一个循环从第二个数字开始遍历num。如果当前数字小于前一个数字,则表示仍然处于连续递减子串中,currLen加1。否则,表示连续递减子串中断,将currLen重置为0。在每次循环中,如果currLen大于maxLen,则更新maxLen。

最后,我们输出maxLen,即最长连续递减子串的长度。

最后,别忘了释放num占用的内存

C++且不使用vector头文件完成:给定一个由n个正整数组成的数字串num现请你求出num中最长连续递减子串的长度并输出若没有则输出0。连续递减:每个元素都一定小于上一个元素。输入描述2行第1行包含1个数字n代表数字的个数n。 第2行包含n个数字代表数字串中的每一个数字。输出描述1行包含num中最长连续递减字串的长度。用例输入 1 101 2 4 6 5 4 1 2 8 7用例输出 1 4提示5

原文地址: https://www.cveoy.top/t/topic/ifOZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录