Добавить проверку на корректность
Не соображу, как можно сделать проверку, чтобы матрицы, в которых совпадают значения элементов в каждой строке, считались некорректными. Так понимаю, что если в каждой строке одинаковые значения, тогда считать матрицу некорректной (Полностью задание: изменить матрицу, чтобы минимальные элементы строк оказались на побочной диагонали, поменяв местами диагональный элемент с любым минимальным в строке. Матрицы, в которых совпадают значения элементов в каждой строке, являются некорректными). Пожалуйста, помогите, очень надо
#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;
}