SHARE
TWEET

Untitled

a guest Nov 15th, 2019 95 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream> // Для setlocale
  2. #include <stdio.h>
  3. #include <time.h>
  4. #include <stdlib.h> // Генерация чисел
  5. #include <malloc.h>
  6. #include <cstdlib>
  7.  
  8. #define random_r() ( rand() % ( max - min + 1 ) + min )
  9.  
  10. int main(void) {
  11.     //randomize();
  12.     //size=random(151)+50;
  13.    
  14.     setlocale(0, ""); //Русский язык
  15.    
  16.     int N = 100;
  17.     int min = -100;
  18.     int max = 100;
  19.    
  20.     /*
  21.     srand(time(NULL));
  22.     int z = rand() % ( max - min + 1 ) + min;
  23.     */
  24.    
  25.     int array[N];
  26.     int i, max_head, max_length, max_sum, now_head, now_length, now_sum;
  27.    
  28.     srand(time(NULL));
  29.    
  30.     for ( i = 0; i < N; ++i )
  31.         array[i] = random_r();
  32.    
  33.     printf("Все элементы массива:\n");
  34.     for ( i = 0; i < N; ++i )
  35.         printf("%d ", array[i]);
  36.    
  37.     max_head = now_head = -1;
  38.     max_sum = now_sum = 0;
  39.     max_length = now_length = 0;
  40.    
  41.     for ( i = 0; i <= N; ++i ) {
  42.         if ( i == N || array[i] <= 0 ) {
  43.             if ( now_head >= 0 ) {
  44.                 if ( now_sum > max_sum ) {
  45.                     max_head = now_head;
  46.                     max_length = now_length;
  47.                     max_sum = now_sum;
  48.                 }
  49.                 now_head = -1;
  50.                 now_length = 0;
  51.                 now_sum = 0;
  52.             }
  53.         }
  54.         else {
  55.             if ( now_head < 0 )
  56.                 now_head = i;
  57.             now_length += 1;
  58.             now_sum += array[i];
  59.         }
  60.     }
  61.    
  62.     printf("\nНепрерывную последовательность положительных чисел, сумма элементов в которой максимальная:\n");
  63.     for ( i = max_head; i < max_head + max_length; ++i )
  64.         printf("%d ", array[i]);
  65.     printf("\Сумма: %d\n", max_sum);
  66.    
  67.     return 0;
  68. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top