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

помогите в написании программы на СИ

Создать функцию, которая меняет местами наибольший и наименьший элемент
матриц. Вывести на экран: исходные, результирующие массивы, а также
наибольший и наименьший элементы матриц.
ВМ
В. М.
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 = NULL;
int column = 0;
for (next = begin; next != end; ++next) {
printf(" %i ", *next);
if (0 == ++column % COLS) printf("\n");
}
printf("\n");
}
int* max_element(int* begin, int* end) {
int* next = NULL;
int max = *begin;
int* element = begin;
for (next = begin + 1; next != end; ++next) {
if (*next > max) {
max = *next;
element = next;
}
}
return element;
}
int* min_element(int* begin, int* end) {
int* next = NULL;
int min = *begin;
int* element = begin;
for (next = begin + 1; next != end; ++next) {
if (*next < min) {
min = *next;
element = next;
}
}
return element;
}
void swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
Михаил Андрухович
Михаил Андрухович
52 982
Лучший ответ