Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- const unsigned int N = 3; // строки
- const unsigned int M = 4; // столбцы
- int main() {
- int matrix[N][M];
- // Заполнение матрицы
- for (int i = 0; N > i; i++) { // строки
- for (int j = 0; M > j; j++) { // столбцы
- printf("Введите matrix[%d][%d]: ", i, j);
- scanf("%d", &matrix[i][j]);
- }
- }
- printf("Текущая матрица:\n");
- for (int i = 0; N > i; i++) {
- for (int j = 0; M > j; j++) {
- printf("%d ", matrix[i][j]);
- }
- printf("\n");
- }
- // Проверка матрицы
- for (int i = 0; N > i; i++) {
- // Если числа в столбце отличаются - переменная flag останется 0
- // иначе, будет равна 1
- int flag = 0;
- for (int j = 0; M - 1 > j; j++) {
- for (int k = j + 1; M > k; k++) {
- if (matrix[i][j] == matrix[i][k]) {
- flag = 1;
- break;
- }
- }
- // Выходим из цикла по горизонтали
- if (flag == 1) {
- break;
- }
- }
- // Если не все числа отличаются,
- // значит мы должны найти наименьший и наибольший
- // и поменять их значения
- if (flag == 1) {
- unsigned int indexMin = 0;
- unsigned int indexMax = 0;
- for (int j = 1; M > j; j++) {
- // Если число больше предыдущего наибольшего
- // то мы запоминаем индекс этого числа
- if (matrix[i][j] > matrix[i][indexMax]) {
- indexMax = j;
- }
- // тоже самое, но с наименьшим
- if (matrix[i][indexMin] > matrix[i][j]) {
- indexMin = j;
- }
- }
- printf("%d %d\n", matrix[i][indexMin], matrix[i][indexMax]);
- // Меняем местами
- int tempInt = matrix[i][indexMin];
- matrix[i][indexMin] = matrix[i][indexMax];
- matrix[i][indexMax] = tempInt;
- }
- }
- printf("Получилась матрица:\n");
- for (int i = 0; N > i; i++) {
- for (int j = 0; M > j; j++) {
- printf("%d ", matrix[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement