对一个c++每日编程练习的提问(入门)

在入门c++,人不很聪明。请问这段代码到底那一部分和问题冲突了??
问题如下:(来自csdn学习社区的每日编程题)

给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9] 最长区间 2,3,8 长度为 3。(测试用例仅做参考,我们会根据代码质量进行评分)


#include <stdio.h>
#include <stdlib.h>

void solution(int n,int arr []){
    int i=0;
    int len=1;
    int maxlen=1;
    
    for(i=0;i<n-1;i++){
 if(arr[i]<arr[i+1])
     len++;

        else  
            if(len>maxlen){
   maxlen=len;
    len=1;
        }
     }
    
    printf("%d",maxlen);
    
    // TODO: 请在此编写代码

}

int main() {
    int n;
    scanf("%d", &n);
    

    
    int* arr;
    arr = (int*)malloc(n * sizeof(int));

    
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }


你这代码也不全啊,有两个问题:
(1)solution函数中,for循环下面需要用if(len>maxlen)判断一下,否则 1 2 3 4 5这种输入就会出错。
(2)main函数中没有调用solution函数。

代码完善如下:

#include <stdio.h>
#include <stdlib.h>

void solution(int n, int arr[]) {
    int i = 0;
    int len = 1;
    int maxlen = 1;

    for (i = 0; i < n - 1; i++) {
        if (arr[i] < arr[i + 1])
            len++;

        else
            if (len > maxlen) {
                maxlen = len;
                len = 1;
            }
    }
    if (len > maxlen)
        maxlen = len;

    printf("%d", maxlen);

}

int main() {
    int n;
    scanf("%d", &n);

    int* arr;
    arr = (int*)malloc(n * sizeof(int));


    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    solution(n, arr);
    return 0;
}

solution函数都没调用。

#include <stdio.h>
#include <stdlib.h>
 
void solution(int n,int arr []){
    int i=0;
    int len=1;
    int maxlen=1;
    
    for(i=0;i<n-1;i++){
        if(arr[i]<arr[i+1])
            len++;
        else  
            if(len>maxlen){
                maxlen=len;
                len=1;
            }
    }
    printf("%d",maxlen);
}
 
int main() {
    int n;
    scanf("%d", &n);
    
    int* arr;
    arr = (int*)malloc(n * sizeof(int));
 
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
 
    solution(n, arr);
    
    free(arr);
    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632