Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "stdio.h"
- #include "windows.h"
- #include "locale.h"
- #include "math.h"
- #include "malloc.h"
- int proverka(int N)
- {
- int er;
- do
- {
- printf("Введите размер массива\n");
- er = scanf_s("%d", &N);
- if (N <= 0 || er == 0)
- printf("Ошибка! Введите снова\n");
- fflush(stdin);
- } while (N <= 0 || er == 0);
- return N;
- }
- int SandN(int A[], int N)
- {
- int a = 0, m, i, j, t;
- for (i = N - 1; i >= 0; i--)
- {
- for (j = 0; j<i; j++)
- {
- if (A[j] < A[j + 1])
- {
- t = A[j];
- A[j] = A[j + 1];
- A[j + 1] = t;
- }
- }
- }
- for (i = (N - 1); i>0; i--)
- {
- if (A[i]>0)
- {
- if (A[i] == A[i - 1])
- {
- a++;
- m = A[i];
- }
- if (A[i] != A[i - 1] && a == 2)
- break;
- if (a>2)
- a = 0;
- }
- }
- return a, m;
- }
- void vivod(int a, int m)
- {
- if (a == m)
- {
- printf("Ровно три раза в массиве встречается минимальное положительное число: %d \n", m);
- }
- else
- printf("Таких элементов нет\n");
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- setlocale(LC_ALL, "rus");
- system("color F0");
- int *A;
- int N=0, er, i, a, m;
- N = proverka(N);
- A = (int*)malloc(N*sizeof(int));
- for (i = 0; i<N; i++)
- {
- do
- {
- printf("A [%d] = ", i + 1);
- er = scanf_s("%d", &A[i]);
- if (er == 0)
- printf("Ошибка! Введите снова\n");
- fflush(stdin);
- } while (er == 0);
- }
- a = SandN(A, N);
- m = SandN(A, N);
- vivod(a, m);
- free(A);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement