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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <Windows.h>
  4. #define ARRAY_SIZE      100
  5. #define LOWER_BORDER   -100
  6. #define HIGHER_BORDER   100
  7.  
  8.  
  9. int main()
  10. {
  11.     srand(time(NULL));
  12.     int *a, i, sum = 0, max_sum = 0;
  13.     BOOL start_flag = FALSE;
  14.     a = malloc(ARRAY_SIZE * sizeof(int));
  15.     for (i = 0; i < ARRAY_SIZE; i++) {
  16.         a[i] = (rand() % (HIGHER_BORDER - LOWER_BORDER + 1)) + LOWER_BORDER;
  17.         //printf("%d\n", a[i]);
  18.     }
  19.  
  20.     for (i = 0; i < ARRAY_SIZE; i++) {
  21.         if (a[i] >= 0)
  22.             start_flag = TRUE;
  23.         else {
  24.             start_flag = FALSE;
  25.             sum = 0;
  26.         }
  27.         if (start_flag) {
  28.             sum += a[i];
  29.             start_flag = FALSE;
  30.         }
  31.         if (max_sum < sum)
  32.             max_sum = sum;
  33.     }
  34.     printf("Longest sum of positive elements is: %d\n", max_sum);
  35.  
  36.     system("pause");
  37.     return 0;
  38. }

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

В этом коде:

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

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


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

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

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы