Большее значение из первого массива и меньшее из второго поменять местами - C (СИ)
Формулировка задачи:
Даны два двумерных массива. Необходимо из первого большее и из второго меньшее поменять местами.
Решение задачи: «Большее значение из первого массива и меньшее из второго поменять местами»
textual
Листинг программы
#include <stdio.h>
void arrayChange(int array1[], int array2[], int size1, int size2) {
int max = array1[0];
int min = array2[0];
int index1 = 0;
int index2 = 0;
for ( int i = 0; i < size1; i++ ) {
if ( max < array1[i] ) {
max = array1[i];
index1 = i;
}
}
for ( int j = 0; j < size2; j++ ) {
if ( min > array2[j] ) {
min = array2[j];
index2 = j;
}
}
array1[index1] = min;
array2[index2] = max;
}
int main() {
int size1 = 5;
int array1[] = {4, 2, 1, 5, 3};
int size2 = 5;
int array2[] = {4, 2, 1, 5, 3};
int last1 = size1 - 1;
int last2 = size2 - 1;
arrayChange(array1, array2, size1, size2);
for ( int i = 0; i < last1; i++ ) {
printf("%d ", array1[i]);
}
printf("%d\n", array1[last1]);
for ( int j = 0; j < last2; j++ ) {
printf("%d ", array2[j]);
}
printf("%d\n", array1[last2]);
return 0;
}
Объяснение кода листинга программы
- Включаем заголовочный файл stdio.h для возможности использования функций ввода-вывода
- Функция arrayChange принимает три аргумента: массивы первого и второго параметров, а также размеры этих массивов
- Создаем две переменные: max и min, которые будут использоваться для хранения наибольшего и наименьшего значений из массивов
- Инициализируем переменные index1 и index2 со значениями 0
- Используя цикл for, проходим по каждому элементу первого массива и находим максимальное значение, сохраняя его в переменной max и его индекс в переменной index1
- Используя второй цикл for, проходим по каждому элементу второго массива и находим наименьшее значение, сохраняя его в переменной min и его индекс в переменной index2
- Меняем значения в массивах: array1[index1] присваиваем значение min, а array2[index2] присваиваем значение max
- В функции main создаем два массива: array1 и array2, задаем их размер и заполняем одинаковыми значениями
- Вызываем функцию arrayChange, передавая ей массивы и их размеры
- Используя два цикла for, выводим значения массивов на экран
- Возвращаем 0, чтобы указать, что программа успешно завершилась