Создать функцию, которая меняет местами наибольший и наименьший элемент
матриц. Вывести на экран: исходные, результирующие массивы, а также
наибольший и наименьший элементы матриц.
Другие языки программирования и технологии
помогите в написании программы на СИ
#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;
}
#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;
}
Похожие вопросы
- Помогите с написание программы СИ (С комментариями пожалуйста )
- Помогите написать пару программ на СИ
- Pycharm (Пожалуйста, помогите с написанием программы)
- Помогите пожалуйста составить программу на СИ++. Заранее всем БЛАГОДАРЕН!
- Помогите в написании программы.
- помогите с написанием программ на паскале
- Помогите с написанием программы C++
- Помогите с написанием программы на языке Ассемблер, алгоритм знаю, вот только команды самого языка - не очень.
- Помогите с написанием программы
- помогите с написание программы плиз: