Programación General > C/C++
Problema con arrays, q error tengo??
(1/1)
matyrocker:
Hola!! bueno hace unos meses arranque con c++
tengo un problema con este codigo, es sobre arrays
me dicen q tengo una matriz ya cargada(20 numeros)
y q me debe mostrar el mayor de ellos y su coordenada
claramente el resultado deberia ser: 20 (q es el mayor)
2 10(q es su ubicacion o coordenada)
el problema es q a la hora de mostrar el resultado no me muestra el numero 20 sino esto: 1974443572 :huh:
las coordenadas si me las muestra correctamente !!...
entonces q es lo q estoy haciendo mal? por q no me muestra 20 como numero mayor??
este es el codigo:
#include<iostream.h>
int main()
{
int f,c,may,fila,col;
int m[2][10]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
may=m[1][1];
for (f=1;f<=2;f++)
for(c=1;c<=10;c++)
{
if (m[f][c]>may)
may=m[f][c];
fila=f;
col=c;
}
cout<<(" ")<<may;
cout<<("n ")<<fila;
cout<<("n ")<<col;
printf("nn");
system("Pause");
}
saludos! y gracias!!
alexg88:
Los arrays en C++ empiezan con índice 0 y terminan en el índice = longitud_array -1.
Por eso, como pones el bucle desde 1 a 10, se te sale del array y te salen esos datos extraños.
matyrocker:
mmm...no me quedo del todo claro, hice algunas modificaciones pero sigue igual, en fin me podrias decir como seria la manera correcta??
ssaammuu:
Como te han dicho, los arrays empiezan por índice 0.
Por ejemplo:
--- Código: C++ --- char array[3]={'a','b','c'};//entonces array[0]=='a'// array[1]=='b'// y array[2]=='c'
Por lo que tus bucles deberían emepezar por 0, (f=0 por ejemplo) y acambar por numero-1 (f<2 por ejemplo)
Otra cosa es el array bidimensional
--- Código: C++ ---int m[2][10]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; sería
--- Código: C++ ---int m[2][10]={ {1,2,3,4,5,6,7,8,9,10} ,{11,12,13,14,15,16,17,18,19,20} };
Navegación
Ir a la versión completa