Найдите максимальный и минимальный элементы в массиве и поменяйте их местами - C (СИ)
Формулировка задачи:
Найдите максимальный и минимальный элементы в массиве и поменяйте их местами.
Формат входных данных:
На вход программе сначала подается значение n не больше 100 — количество элементов в массиве. В следующей строке входных данных расположены сами элементы массива — целые числа, по модулю не превосходящие 30 000.Формат результата:
Выдайте значения элементов массива после выполнения указанной операции.Решение задачи: «Найдите максимальный и минимальный элементы в массиве и поменяйте их местами»
textual
Листинг программы
#include <stdio.h>
int Max(int a[], int n){
int max = 0, i, j = 0;
for(i = 0; i <= n - 1; i++)
if(max < a[i])
{
j = i;
max = a[i];
}
return j;
}
int Min (int a[], int n){
int min = 32000, i, j = 0;
for(i = 0; i <= n - 1; i++)
if(min > a[i]){
j = i;
min = a[i];
}
return j;
}
int main()
{
int n, i, a, b, temp;
printf("Vvedine n: ");
scanf("%d", &n);
int mass[n];
if(n <= 100 && n > 1){
for( i = 0; i <= n - 1; i++){
mass[i] = rand() % 20;
printf("%4d", mass[i]);
if((i+1) % 10 == 0) printf("\n");
}
a = Max(mass, n);
b = Min (mass, n);
printf("%d %d\n", a, b);
temp = mass[a];
mass[a] = mass[b];
mass[b] = temp;
for(i = 0; i <= n - 1; i++){
printf("%4d", mass[i]);
if((i+1) % 10 == 0) printf("\n");
}
}
else printf("Ozibka vvoda\n");
return 0;
}
Объяснение кода листинга программы
В этом коде:
- int Max(int a[], int n) - функция для поиска максимального элемента в массиве a длиной n. Результатом работы функции является индекс максимального элемента в массиве.
- int Min(int a[], int n) - функция для поиска минимального элемента в массиве a длиной n. Результатом работы функции является индекс минимального элемента в массиве.
- int main() - основная функция программы, в которой происходит следующее:
- Запрос на ввод количества элементов в массив (n).
- Создание массива длиной n и заполнение его случайными числами от 0 до 19.
- Вывод на экран заполненного массива.
- Поиск максимального и минимального элементов в массиве с помощью функций Max и Min.
- Обмен максимального и минимального элементов с помощью временной переменной temp.
- Вывод на экран обновленного массива.
- Если введенное количество элементов выходит за пределы от 11 до 99, выводится сообщение об ошибке
Ozibka vvoda.