Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement