лаба 1 блок схема и код вариант 5 трпп / трпп1
.docxБелорусский Государственный Университет Информатики и Радиоэлектроники
Кафедра экономической информатики
Технология Разработки Программных Приложений
Кодирование алгоритмов сортировки с оценкой их производительности
Вариант 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)Блок-Схема