Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Найти номер последнего максимального элемента среди элементов,
- //лежащих в диапазоне[c, d] и расположенных до первого четного элемента.
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <locale.h>
- void mass_vvod();
- void granicy(int, int);
- int *a, n;
- int gr_1, gr_2, perv_ch = -1; //переменные gr_1 и gr_1 определяют границы [c,d]
- int main()
- {
- int max;
- setlocale(LC_ALL, "rus");
- mass_vvod();
- void granicy(&gr_1, &gr_2);
- for (int i = gr_1; i < gr_2 + 1; i++)//нахождение первого чётного числа на [c,d]
- {
- if (a[i] % 2 == 0 && a[i] != 0)
- {
- perv_ch = i;
- i = n;
- }
- }
- if (perv_ch == gr_1) printf("Первый чёт. эл-т первый на интервале!\n");
- else
- {
- for (int i = perv_ch - 1; i > gr_1; i--)
- {
- max = gr_1;
- if (a[i] > a[max])
- {
- max = i;
- i = -1;
- }
- }
- }
- printf("max=%d\n", max);
- free(a);
- _getch();
- }
- void mass_vvod()// функция ввода массива
- {
- int i;
- printf("Введите кол-во эл-тов массива\n");
- scanf_s("%d", &n);
- a = (int *)malloc(n * sizeof(int));
- for (int i = 0; i <n; i++)
- {
- printf("a[%d] = \n", i);
- scanf_s("%d", &a[i]);
- }
- _getch();
- }
- void granicy(int gr_1, int gr_2)// нахождение границ промежутка [c,d]
- {
- int c, d;
- printf("Введите c и d\n");
- scanf_s("%d %d", &c, &d);
- for (int i = 0; i < n; i++)//нахождение первой границы c промежутка
- {
- if (a[i] == c)
- {
- gr_1 = i;
- i = n;
- }
- }
- for (int i = 0; i < n; i++)//нахождение второй границы d промежутка
- {
- if (a[i] == d)
- {
- gr_2 = i;
- i = n;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement