Red de conocimiento informático - Conocimiento sistemático - Por favor explique, pregunta de programación c

Por favor explique, pregunta de programación c

En primer lugar, si n es menor o igual a 100, puede agregar #define N 100 al comienzo del programa como el valor máximo. La voz C estipula que no se permiten variables. utilizados como subíndices en definiciones de matrices. Luego puede modificar int num[i][j]; a int num[N][N];

En segundo lugar, cuando busque el valor máximo de la fila actual, la asignación de y no es científica. Puedes modificar esta parte. El programa es:

for ( i=0; ilt; n; i )

{ y=0; que el primer número es el mayor

para (j=1;jlt;n;j) if (num[i][j]gt;num[i][y]) y=j; /De esta manera, una vez finalizado el bucle j, y almacena el subíndice máximo de la fila actual

...

}

Para encontrar el número más pequeño , también puedes usar el método de encontrar el número más grande

x=0; for ( j= 1;jlt;n;j) if (num[j][y]lt;num[x] [y]) x=j;

Entonces simplemente juzgue si el x obtenido es igual a i

Dado que el punto de silla se encuentra en cada fila y no hay ningún punto de silla en En toda la matriz, "NO" se puede generar solo después de que se hayan buscado todas las filas, por lo que el juicio de generar "NO" debe llevarse al bucle i Realizar externamente en lugar de juzgar si se debe generar cada línea

Consulte el siguiente programa:

#define N 100

void main()

{ int b, i, j, x, y, n, num[N][N];

scanf("d",amp;n); if (nlt;0) return; si no (ngt; N) n=N; p> for ( i=0, b=0; ilt; n; i )

{ y=0; for ( j= 1;jlt;n;j) if (num[i][j ]gt;num[i][y]) y=j; //La columna y es el valor máximo

x=0; j][y]lt;num[x][y]) x=j; //La fila x es el valor mínimo en la columna y

if ( x==i ) { printf(" d d\n", i, y); b=1; } //b registra si se encuentra el punto de silla

}

if ( b==0 ) printf(" NO\n"); //No se encontró ningún punto de silla en n líneas, salida NO

}