Advertisement
Guest User

Влад. Луста исправить

a guest
Nov 12th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include "stdio.h"
  3. #include "windows.h"
  4. #include "locale.h"
  5. #include "math.h"
  6. #include "malloc.h"
  7. int proverka(int N)
  8. {
  9. int er;
  10. do
  11. {
  12. printf("Введите размер массива\n");
  13. er = scanf_s("%d", &N);
  14. if (N <= 0 || er == 0)
  15. printf("Ошибка! Введите снова\n");
  16. fflush(stdin);
  17. } while (N <= 0 || er == 0);
  18. return N;
  19. }
  20.  
  21. int SandN(int A[], int N)
  22. {
  23. int a = 0, m, i, j, t;
  24. for (i = N - 1; i >= 0; i--)
  25. {
  26. for (j = 0; j<i; j++)
  27. {
  28. if (A[j] < A[j + 1])
  29. {
  30. t = A[j];
  31. A[j] = A[j + 1];
  32. A[j + 1] = t;
  33. }
  34. }
  35. }
  36. for (i = (N - 1); i>0; i--)
  37. {
  38. if (A[i]>0)
  39. {
  40. if (A[i] == A[i - 1])
  41. {
  42. a++;
  43. m = A[i];
  44. }
  45. if (A[i] != A[i - 1] && a == 2)
  46. break;
  47. if (a>2)
  48. a = 0;
  49. }
  50. }
  51. return a, m;
  52. }
  53.  
  54. void vivod(int a, int m)
  55. {
  56. if (a == m)
  57. {
  58. printf("Ровно три раза в массиве встречается минимальное положительное число: %d \n", m);
  59. }
  60. else
  61. printf("Таких элементов нет\n");
  62. }
  63.  
  64.  
  65. int _tmain(int argc, _TCHAR* argv[])
  66. {
  67. setlocale(LC_ALL, "rus");
  68. system("color F0");
  69. int *A;
  70. int N=0, er, i, a, m;
  71. N = proverka(N);
  72. A = (int*)malloc(N*sizeof(int));
  73. for (i = 0; i<N; i++)
  74. {
  75. do
  76. {
  77. printf("A [%d] = ", i + 1);
  78. er = scanf_s("%d", &A[i]);
  79. if (er == 0)
  80. printf("Ошибка! Введите снова\n");
  81. fflush(stdin);
  82. } while (er == 0);
  83. }
  84. a = SandN(A, N);
  85. m = SandN(A, N);
  86. vivod(a, m);
  87. free(A);
  88. system("pause");
  89. return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement