Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
1.73 Кб
Скачать
#include <stdio.h>
#define ROWS 8
#define COLS 12

int main() {
    int A[ROWS][COLS];
    int i, j;
    int min_val, max_val;
    int min_i, min_j, max_i, max_j;
    int min_count = 0, max_count = 0;
    
    printf("Enter matrix %dx%d:\n", ROWS, COLS);
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            printf("A[%d][%d] = ", i, j);
            scanf("%d", &A[i][j]);
        }
    }
    
    // Поиск min и max через индексацию
    min_val = max_val = A[0][0];
    min_i = min_j = max_i = max_j = 0;
    
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            if (A[i][j] < min_val) {
                min_val = A[i][j];
                min_i = i; min_j = j;
                min_count = 1;
            } else if (A[i][j] == min_val) {
                min_count++;
            }
            
            if (A[i][j] > max_val) {
                max_val = A[i][j];
                max_i = i; max_j = j;
                max_count = 1;
            } else if (A[i][j] == max_val) {
                max_count++;
            }
        }
    }
    
    // Проверка корректности
    if (min_count > 1 || max_count > 1) {
        printf("Error: min or max value appears more than once\n");
        return 1;
    }
    
    // Обмен значений
    int temp = A[min_i][min_j];
    A[min_i][min_j] = A[max_i][max_j];
    A[max_i][max_j] = temp;
    
    printf("\nMatrix after swapping min and max:\n");
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            printf("%4d", A[i][j]);
        }
        printf("\n");
    }
    
    return 0;
}
Соседние файлы в папке Лаба4