У меня есть эта реализация, результат этой программы равен 100, но правильный ответ 103. Кто-нибудь знает, что не так в этой реализации, или если есть лучший способ для нахождения максимальной последовательной суммы целых чисел в массиве?Чтобы найти максимальную последовательную сумму целых чисел в массиве
Заранее спасибо.
#include <stdio.h>
int main(void) {
int a[] = { -3, 100, -4, -2, 9, -63, -200, 55 };
int max_sum, temp_sum, i, n = 12, t;
temp_sum = max_sum = a[0];
for (i = 1; i < n; i++) {
if (a[i] > 0)
temp_sum += a[i];
else {
t = 0;
while (a[i] < 0 && i < n) {
t += a[i];
i++;
}
if (temp_sum + t > 0) {
temp_sum = temp_sum + t + a[i];
if (temp_sum > max_sum)
max_sum = temp_sum;
} else if (i < n)
temp_sum = a[i];
}
}
if (temp_sum > max_sum)
max_sum = temp_sum;
printf("Maximum Numbers is %d \n", max_sum);
return 0;
}
Там что-то странное здесь, я скопировал ваш код в CodeBlocks, и результат 332 ?? –
Это домашнее задание? Вы должны рассмотреть возможность использования рекурсивности. –
Что вы подразумеваете под «максимальной последовательной суммой»? Как вы можете получить 103? – Saphrosit