Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Buen dia.. Tengo unda duda

Estas en el tema de Buen dia.. Tengo unda duda en el foro de C/C++ en Foros del Web. Este es mi codigo e imprime el numero mayor de mi matriz.. Como hago para que imprima tambien su posicion.. He leido varios libros pero ...
  #1 (permalink)  
Antiguo 11/06/2016, 09:40
 
Fecha de Ingreso: marzo-2016
Mensajes: 20
Antigüedad: 8 años, 7 meses
Puntos: 0
Información Buen dia.. Tengo unda duda

Este es mi codigo e imprime el numero mayor de mi matriz.. Como hago para que imprima tambien su posicion.. He leido varios libros pero no me dan una forma de hacerlo.. El que pueda agradecido estare

#include<iostream>
using namespace std;

int main()
{

int matriz[3][2];
int valor,mayor;
for(int i=0;i<3;i++)
{
for(int j=0; j<2;j++)
{
cout<<"Ingrese el valor de la matriz en la posicion ["<<i<<","<<j<<"]: ";
cin>>valor;
matriz[i][j] = valor;
cout<< endl;

mayor=matriz[0][0];

}
}
for(int i=0;i<3;i++)
{

for(int j=0; j<2;j++)
{

if (matriz[i][j]>=mayor)
{
mayor=matriz[i][j];
}

}
}

cout << "El numero mayor de la matriz es: " << mayor << endl;
system("PAUSE");
return 0;

}
  #2 (permalink)  
Antiguo 11/06/2016, 10:41
Avatar de xKuZz  
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 9 meses
Puntos: 27
Respuesta: Buen dia.. Tengo unda duda

Puedes crear dos variables mayor_i y mayor_j inicializadas cada una a 0 y que se actualicen con sus respectivos valores de i y j cuando actualices mayor.
  #3 (permalink)  
Antiguo 11/06/2016, 11:18
 
Fecha de Ingreso: marzo-2016
Mensajes: 20
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Buen dia.. Tengo unda duda

Pero como podria colocarlo dentro de mi codigo? Eso pregunto ya que eso mismo que me dices lo use antes de hacer la pregunta aca.. Y no me imprimia la posicion amigo
  #4 (permalink)  
Antiguo 12/06/2016, 05:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Buen dia.. Tengo unda duda

El código lo puedes optimizar de forma que en el mismo bucle de entrada de datos evalúe si la entrada en cada momento es mayor que la anterior, y la posición en el array.
Este puede ser una forma de resolverlo suponiendo que los números serán siempre mayor o igual a 0 (lo puedes adaptar para números negativos)

En pseudocódigo/diagrama de flujo cutre):
Valor inicial del numero mayor = 0;
Posicion i en el array de dicho valor = 0;
Posicion j en el array de dicho valor = 0;

Bucle:
Introduzco valor;
Asigno valor al array
¿Mayor que valor inicial (variable mayor)?
Si:
Ahora variable mayor vale el valor de esa entrada
Ahora Posicion i y Posicion j valen la i y la j del array
No:
No hago nada


Es como lo tienes tú, solo que el segundo bucle que tienes lo puedes hacer en el primero y ahorrarte recorrer otra vez el array. Si además, cunado haces:
Código C++:
Ver original
  1. ........
  2. if (matriz[i][j]>=mayor)
  3. {
  4. mayor=matriz[i][j];
  5. posicion_i = i;
  6. posicion_j = j;
  7. }
  8. ......

Pues no sólo obtienes el valor mayor sino su posición en el array
__________________
Mi calculadora en Qt
  #5 (permalink)  
Antiguo 14/06/2016, 06:33
 
Fecha de Ingreso: marzo-2016
Mensajes: 20
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Buen dia.. Tengo unda duda

Muchisimas gracias!! Ahora si funciona perfetamente.. GRACIAS!!!!!!

Etiquetas: mayor, numero, posicion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:18.