Другие языки программирования и технологии

помогите написать программу на языке си

Создать функцию, которая меняет местами наибольший и наименьший элемент
матриц. Вывести на экран: исходные, результирующие массивы, а также
наибольший и наименьший элементы матриц.
Farkhat Yelemessov
Farkhat Yelemessov
275
#include <stdio.h>
#define ROWS 2
#define COLS 3
void print(int* begin, int* end);
int* max_element(int* begin, int* end);
int* min_element(int* begin, int* end);
void swap(int* a, int* b);
int main(void) {
int matrix[ROWS][COLS] = { { 6, 3, 9 }, { 4, 2, 7 } };
int* begin = &matrix[0][0];
int* end = &matrix[ROWS - 1][COLS];
int* max = max_element(begin, end);
int* min = min_element(begin, end);
print(begin, end);
swap(max, min);
print(begin, end);
printf(" Min: %i\n Max: %i\n", *max, *min);
getchar();
}
void print(int* begin, int* end) {
int* next = begin;
int column = 0;
while (next != end) {
printf(" %i ", *next);
if (0 == ++column % COLS) printf("\n");
++next;
}
printf("\n");
}
int* max_element(int* begin, int* end) {
int* next = begin + 1;
int max = *begin;
int* element = begin;
while (next != end) {
if (*next > max) {
max = *next;
element = next;
}
++next;
}
return element;
}
int* min_element(int* begin, int* end) {
int* next = begin + 1;
int min = *begin;
int* element = begin;
while ( next != end) {
if (*next < min) {
min = *next;
element = next;
}
++next;
}
return element;
}
void swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
СМ
Строй Мастер
91 726
Лучший ответ