Guest User

Untitled

a guest
Apr 16th, 2021
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. #include <windows.h>
  2. #include <locale.h>
  3. #include <string.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <time.h>
  7.  
  8. ///////////////////////
  9.  
  10. void RusPrint(void);
  11.  
  12. ///////////////////////
  13.  
  14. void OutArr(int *a, int nn)
  15. {
  16. for (int i= 0; i< nn; i++)
  17. {
  18. if (i%10) { printf ("%d\t",a[i]); }
  19. else { printf ("\n%d\t",a[i]); }
  20. }
  21. }
  22.  
  23. ///////////////////////
  24.  
  25. void InputArr(int *a, int *a0, int nn)
  26. {
  27. //Метод заполнения
  28.  
  29. for (int i= 0; i< nn; i++) a[i]=rand()%200-100; //случайно
  30.  
  31. //вручную
  32.  
  33. int q= 0; int value= 200;
  34.  
  35. while (q<nn)
  36. {
  37. NEXT:
  38. printf ("\nВведите элемент массива № %d\n", q);
  39. scanf("%d", &value);
  40. if (value<-100 || value>100)
  41. {
  42. printf("Диапазон значений [-100, 100]\n");
  43. goto NEXT;
  44. }
  45. a0[q]= value; q++;
  46. }
  47. }
  48.  
  49. ///////////////////////
  50.  
  51. void GreaterEl(int *a, int *a0, int nn, int *value, int *value0)
  52. {
  53. int q, v, v0;
  54. if (a[0]<0) v=a[0]*(-1);
  55. if (a0[0]<0) v0=a0[0]*(-1);
  56.  
  57. for (int i=1; i<nn; i++)
  58. {
  59. q= a[i]; if (q<0) q*=-1;
  60. if (q>v) v= q;
  61.  
  62. q= a0[i]; if (q<0) q*=-1;
  63. if (q>v0) v0= q;
  64. }
  65. *value= v; *value0= v0;
  66. return;
  67. }
  68.  
  69. ////////////////////////////
  70.  
  71. void SummAfterZero(int *a, int *a0, int nn, int *value, int *value0, int *r, int *r0)
  72. {
  73. int i= nn-1; int v=0, v0=0;
  74. do
  75. {
  76. if (a[i]==0) break;
  77. v= v+a[i];
  78. i--;
  79. } while ( i>-1);
  80.  
  81. *r= i; *value= v;
  82.  
  83. i= nn-1;
  84. do
  85. {
  86. if (a0[i]==0) { break; }
  87. v0= v0+a0[i];
  88. i--;
  89. } while ( i>-1);
  90.  
  91. *r0= i; *value0= v0;
  92.  
  93. return;
  94. }
  95.  
  96. /////////////////////////////////////
  97. int main()
  98. {
  99. RusPrint(); // Русские буквы
  100.  
  101. int value, value0; int n, i, r, r0;
  102. int *arr; int *arr0; //srand(time(0));
  103.  
  104. printf ("Введите количество элементов массива= ");
  105. scanf ("%d", &n);
  106.  
  107. //Выделяем память под массив
  108.  
  109. arr = (int*) malloc (n*sizeof(int));
  110. if (arr==NULL) exit (1);
  111.  
  112. arr0 = (int*) malloc (n*sizeof(int));
  113. if (arr==NULL) exit (1);
  114.  
  115. //Заполняем массив
  116.  
  117. InputArr(arr, arr0, n);
  118.  
  119. //Вывод массива случайного
  120.  
  121. printf("\nВывод массива случайного\n");
  122. OutArr(arr, n);
  123.  
  124. //Вывод массива ручного
  125.  
  126. printf("\nВывод массива ручного\n");
  127. OutArr(arr0, n);
  128.  
  129.  
  130. //Самый большой по модулю элемент
  131.  
  132. GreaterEl(arr, arr0, n, &value, &value0);
  133. printf("\nСамый большой по модулю элемент в случайном массиве= %d\n", value);
  134. printf("\nСамый большой по модулю элемент в ручном массиве= %d\n", value0);
  135.  
  136. //Сумма элементов после крайнего нулевого
  137.  
  138. SummAfterZero(arr, arr0, n, &value, &value0, &r, &r0);
  139.  
  140. if (r==-1) { printf("\nНуля в случайном массиве нет..."); goto NEXTPROC; }
  141. if (r==n) { printf("\nНоль последний элемент в случайном массиве..."); goto NEXTPROC; }
  142. printf("\nСумма случайных элементов за последним нулём= %d", value);
  143.  
  144. NEXTPROC:
  145. if (r0==-1) { printf("\nНуля в ручном массиве нет..."); goto ENDPROC; }
  146. if (r0==n) { printf("\nНоль последний элемент в ручном массиве..."); goto ENDPROC; }
  147. printf("\nСумма рукописных элементов за последним нулём= %d", value0);
  148.  
  149. ENDPROC:
  150. printf("\n"); system("pause"); free (arr); free (arr0);
  151.  
  152. return 0;
  153. }
  154.  
  155. //////////////////////
  156. void RusPrint(void)
  157. {
  158. //Руссификация сообщений
  159.  
  160. system("chcp 1251 > nul");
  161.  
  162. SetConsoleTitle("ОтветыМейлРу");
  163.  
  164. return;
  165. }
  166.  
Advertisement
Add Comment
Please, Sign In to add comment