Добавить проверку на корректность

Не соображу, как можно сделать проверку, чтобы матрицы, в которых совпадают значения элементов в каждой строке, считались некорректными. Так понимаю, что если в каждой строке одинаковые значения, тогда считать матрицу некорректной (Полностью задание: изменить матрицу, чтобы минимальные элементы строк оказались на побочной диагонали, поменяв местами диагональный элемент с любым минимальным в строке. Матрицы, в которых совпадают значения элементов в каждой строке, являются некорректными). Пожалуйста, помогите, очень надо

#include <stdlib.h>
#include <stdio.h>
#define N 7
int main() {
    int p[N][N],i,j,m,tmp=0;
    for (i=0;i<N;i++) {
        for (j=0;j<N;j++)
            scanf ("%d",&p[i][j]);
    }
    for (i=0;i<N;i++) {
        m=0; 
        for (j=1;j<N;j++) {
            if (p[i][j] < p[i][m])
                m=j;
        }
        tmp=p[i][N-1-i]; 
        p[i][N-1-i]=p[i][m];
        p[i][m]=tmp;
    }

    for (i=0; i<N; i++) {
        printf("\n");
        for (j=0; j<N; j++) {
            printf("%d ",p[i][j]);
        }
    }
    return 0;
}

Ответы (1 шт):

Автор решения: callsign_404
#include <stdlib.h>
#include <stdio.h>
#define N 7

int main() {
    int p[N][N], i, j, m, tmp = 0;
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++)
            scanf("%d", &p[i][j]);
    }
    for (i = 0; i < N; i++) {
        m = 0;
        for (j = 1; j < N; j++) {
            if (p[i][j] < p[i][m])
                m = j;
        }
        // Проверка, что в строке нет совпадающих элементов
        for (int k = 0; k < N; k++) {
            if (p[i][k] == p[i][m]) {
                printf("Матрица некорректна\n");
                return 0;
            }
        }
        tmp = p[i][N - 1 - i];
        p[i][N - 1 - i] = p[i][m];
        p[i][m] = tmp;
    }
    for (i = 0; i < N; i++) {
        printf("\n");
        for (j = 0; j < N; j++) {
            printf("%d ", p[i][j]);
        }
    }
    return 0;
}
→ Ссылка