Скачиваний:
7
Добавлен:
09.09.2020
Размер:
15.21 Кб
Скачать

Белорусский Государственный Университет Информатики и Радиоэлектроники

Кафедра экономической информатики

Технология Разработки Программных Приложений

Кодирование алгоритмов сортировки с оценкой их производительности

Вариант 5

Выполнил Студент Рушева М.Р.

Группа 972304

1)Задание

Найти номер первого максимального значения среди отрицательных элементов, расположенных правее первого элемента, равного Т.

2)Код

#include<stdio.h>

#include<stdlib.h>

#include<locale.h>

int main() {

setlocale(LC_ALL, ".1251");

//объявление переменных для размерности массива (n), числа (m) и индекса искомого макс.элемента (max_ind)

int n = 0, m = 0, max_ind = -1;

//ввод размерности массива

printf("Введите размер массива: ");

scanf_s("%d", &n);

//выделение памяти под массив

int* a = (int*) calloc(n, sizeof(int));

//ввод чисел в массив

printf("Введите %d целых чисел: ", n);

for (size_t i = 0; i < n; i++)

{

scanf_s("%d", a + i);

}

//ввод числа, справа от которого будет осуществляться поиск

printf("Введите целое число: ");

scanf_s("%d", &m);

//поиск введённого числа в массиве

int i = 0;

for (; i < n; i++)

{

if (a[i] == m) break;

}

//возможно, что такого числа в массиве нет!

if (i >= n)

{

printf("Такого числа в массиве нет! Поиск невозможен!\n");

}

//также возможно, что это число последнее в массиве, после него нет других элементов

else if (i == n - 1)

{

printf("Это последний элемент в массиве! Правее него нет чисел! Поиск невозможен!\n");

}

//тот случай когда поиск имеет смысл

else

{

int j = i + 1; //берём индекс следующего после данного числа

int max = INT_MIN; //за максимум берём наименьшее целое число

//цикл поиска 1-го максимального отрицательного числа справа от данного

for (; j < n; j++)

{

//если встречается отрицательный элемент и он > текущего максимума...

if (a[j] < 0 && a[j] > max)

{

//то переопределяем индекс и значение максимума

max_ind = j;

max = a[max_ind];

}

}

//проверка результатов поиска и вывод результата

if (max_ind == -1)

printf("В массиве нет отрицательных чисел правее заданного!\n");

else

//выводится номер отрицательного числа, если начинать отсчёт отрицательных чисел после данного

printf("Номер 1-го максимального значения среди отрицительных чисел правее заданного: %d\n", max_ind - i);

}

return 0;

}

3)Блок-Схема

Соседние файлы в папке лаба 1 блок схема и код вариант 5 трпп