Я прохожу языковой курс C в Coursera, где я натолкнулся на задание, в котором просил меня написать фрагмент кода, который мог бы рассказать о максимальной возрастающей последовательности в массиве. Например, для массива {3,5,0,7,8,9} он должен вернуть мне три как максимум. Я написал две части кода, которые, как я полагаю, должны быть в состоянии пройти. Однако, только один из них сделал, и я не мог понять, почему.
Вот первый фрагмент кода, который проходит:
#include <stdio.h>
#include <string.h>
size_t maxSeq(int*array, size_t n){
size_t maxLength = 0;
size_t counter = 1;
if(n == 0){
return maxLength;
}
if(n == 1){
maxLength = 1;
return maxLength;
}
for(int i = 1;i < n;i++){
if((array[i]-array[i-1])>0){
counter += 1;
}else{
if(maxLength < counter){
maxLength = counter;
}
counter = 1;
}
}
if(maxLength < counter){
maxLength = counter;
}
return maxLength;
}
А вот второй фрагмент кода, который не прошло:
#include <stdio.h>
#include <string.h>
size_t maxSeq(int*array, size_t n){
int maxLength = 0;
int counter = 1;
if( n== 0){
return maxLength;
}
if(n == 1){
maxLength = 1;
return maxLength;
}
for(size_t i = 1;i < n;i++){
if((array[i]-array[i-1])>0){
counter += 1;
if(counter >= maxLength){
maxLength = counter;
}
}else if((array[i]-array[i-1])<=0){
counter = 1;
}
}
return maxLength;
}