Поиск непрерывной последовательности непрерывных чисел - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Объявить массив целых чисел и заполнить его случайными значениями. Размер массива и диапазон значений его элементов заданы в Вашем варианте индивидуального задания. В индивидуальных заданиях (см. приложение) указано также, какую обработку массива следует произвести. Для всех вариантов задания следует иметь в виду следующее: • 0 считается положительным числом, если в задании не оговорен какой-то другой его статус; • когда речь идет о какой-то последовательности чисел, имеется в виду последовательность с длиной, большей 1; • в тех случаях, когда задание требует выполнения каких-то вычислений, разрешается выполнять их с той точностью, которую обеспечивают операции целочисленной арифметики.

Решение задачи: «Поиск непрерывной последовательности непрерывных чисел»

textual
Листинг программы
#include <stdio.h> 
#include <time.h>
#include <Windows.h>
#define ARRAY_SIZE      100
#define LOWER_BORDER   -100
#define HIGHER_BORDER   100
 
 
int main()
{
    srand(time(NULL));
    int *a, i, sum = 0, max_sum = 0;
    BOOL start_flag = FALSE;
    a = malloc(ARRAY_SIZE * sizeof(int));
    for (i = 0; i < ARRAY_SIZE; i++) {
        a[i] = (rand() % (HIGHER_BORDER - LOWER_BORDER + 1)) + LOWER_BORDER;
        //printf("%d\n", a[i]);
    }
 
    for (i = 0; i < ARRAY_SIZE; i++) {
        if (a[i] >= 0)
            start_flag = TRUE;
        else {
            start_flag = FALSE;
            sum = 0;
        }
        if (start_flag) {
            sum += a[i];
            start_flag = FALSE;
        }
        if (max_sum < sum)
            max_sum = sum;
    }
    printf("Longest sum of positive elements is: %d\n", max_sum);
 
    system("pause");
    return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявляются макросы для определения размера массива и границ значений, которые могут принимать случайные числа.
  2. Задаются начальные значения переменных: селектор случайной последовательности чисел, сумма, максимальная сумма и флаг начала последовательности.
  3. В цикле заполняется массив случайными числами.
  4. В цикле подсчитывается сумма положительных чисел, начиная с каждого числа массива, и проверяется, является ли эта сумма максимальной.
  5. Выводится сообщение с максимальной суммой положительных чисел.
  6. Требуется нажатие клавиши для выхода из программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы