dada una matriz de enteros, construye un vector en el que cada posicion contenga el maximo de todos los valores de la fila correspondiente de la matriz
En principio he conseguido que me funcionara el programa para una matriz de orden determinado por mi: en este caso, orden 5x5. Adjunto codigo:
Código:
Sin embargo, ahora quiero que esto me funcione para una matriz general de orden como máximo 30x30, pero que no tenga que ser obligatoriamente de ese orden, que pueda ser menor (4x4, 10x10...) e incluso que no tenga po qué ser cuadrada (que pueda ser de orden 4x9 o 6x3...); a eleccion del usuario cuando introduce los valores por teclado.#include <stdio.h> #include <stdlib.h> #define ORDEN 5 /*He determinado que el orden de la matriz sea 5x5 para que no sea excesivamente larga*/ int main() { int matriz[ORDEN][ORDEN]; int i, j; int maxval[ORDEN]; int cont=0; i=0; j=0; printf("\n\tMatriz de orden %dx%d", ORDEN, ORDEN); /*El usuario introduce los numeros que formaran la matriz cuadrada*/ while(i<ORDEN) { do{ printf("\n\tNumero en la posicion (%d,%d) de la matriz: ",i,j); scanf("%d", &matriz[i][j]); j++; }while(j<ORDEN); i++; j=0; } /*Una vez introducidos los valores de la matriz por posiciones, el programa analizará cada fila en busca del mayor numero que se aloje en ella*/ i=0; j=0; while(i<ORDEN) { do{ if(cont==0) { maxval[i]=matriz[i][j]; cont++; } if(matriz[i][j]>maxval[i]) { maxval[i]=matriz[i][j]; } else { j++; } }while(j<ORDEN); printf("\n\n\tEl mayor numero de la fila %d es %d", i, maxval[i]); i++; j=0; } printf("\n\n\n"); system("Pause"); }
Había pensado en detener la peticion de datos de cada fila cuando el usuario introdujera un caracter, por ejemplo, pero no consigo encontrar la forma de hacerlo!!
Gracias de antemano! Un saludo!