Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2008, 06:53
Avatar de calathea
calathea
 
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 16 años, 1 mes
Puntos: 3
Detencion de peticion de datos

Hola! Tengo un problemilla con un programa; os incluyo el enunciado:

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:
#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");

}
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.

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!