duda resultado de matriz [resuelto y con for incluido :) ]

Iniciado por flony, 14 Octubre 2010, 19:47 PM

0 Miembros y 1 Visitante están viendo este tema.

flony

hola gente estaba practicando un poco de c++ y queria ver los datos de una matriz
aclaro me salio pero queria ver xq salieron estos resultados en la busqueda de mi practica
1° el codigo bien  ;-)
#include <iostream>
using namespace std;
int main ()
{
   int a,b,c;
   int matriz [2];
   cout << "ingrese la nota: \n";
   cin>>a;
   cout << "ingrese la nota: \n";
   cin>>b;
   cout <<"ingrse nota: \n";
   cin>>c;
   matriz[0] = a;
   matriz[1] = b;
   matriz[2] = c;
   cout <<"los datos ingresados son "<< matriz[0] << endl;
   cout <<"los datos ingresados son "<< matriz[1] << endl;
   cout <<"los datos ingresados son "<< matriz[2] << endl;
   system("PAUSE");
   return 0;
}

pero ahora los resultados raros
#include <iostream>
using namespace std;
int main ()
{
   int a,b,c;
   int matriz [2];
   cout << "ingrese la nota: \n";
   cin>>a;
   cout << "ingrese la nota: \n";
   cin>>b;
   cout <<"ingrse nota: \n";
   cin>>c;
   cout <<"la matriz es "<< matriz[a,b,c]<< endl;
   system("PAUSE");
   return 0;
}
da como rdo -858993460
y la segunda
#include <iostream>
using namespace std;
int main ()
{
   int a,b,c;
   int matriz [2];
   cout << "ingrese la nota: \n";
   cin>>a;
   cout << "ingrese la nota: \n";
   cin>>b;
   cout <<"ingrse nota: \n";
   cin>>c;
   cout <<"la matriz es "<< matriz<< endl;
   system("PAUSE");
   return 0;
}
y el rdo es 0012FF38
si un problema no tiene solucion entonces no es un problema...es algo inevitable

Horricreu

#1
En ambos códigos, reservas demasiada poca memoria para los arreglos; y para imprimirlos, puedes usar el bucle for().

flony

lo de reservar poca memoria...estoy estudiando eso  :-[ ahora con un bucle for  :silbar: si seguro se puede hacer  :rolleyes: pero los resultados es lo raro.. :huh: y queria saber xq?
si un problema no tiene solucion entonces no es un problema...es algo inevitable

Horricreu

#3
A ver, escúchame atentamente :D No te imprime por pantalla correctamente porque:


  • Reservas poca memoria.
  • Imprimes de una forma incorrecta.

¿Por qué reservas poca memoria? Tú quieres introducir 3 notas y, sólo reservas para 2. Fíjate cómo reservas el arreglo.

¿Por qué no te imprime en pantalla? Lo haces de forma incorrecta. Fíjate en el siguiente ejemplo:

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

int main()
{
int arreglo[2] = {1, 2};

cout << arreglo[0] << " " << arreglo[1] << endl;

cin.get();

return 0;
}


Y te preguntarás: ¿por qué no haces?

Código (cpp) [Seleccionar]
cout << arreglo[1] << " " << arreglo[2] << endl;

Porque en los arreglos, el primero elemento es el elemento 0. Espero que te haya quedado claro ;)

flony

#4
cha gracias resuelto la duda y lo del for jijiji lo consegi es asi
#include <iostream>

using namespace std;

int main()
{
   int variable;
   int matriz[3];
   for(int indice=0;indice<3;indice++)
   {
       cout << "Ingrese la nota: \n";
       cin>> variable;
       matriz[indice] = variable;
   }

   cout << "La matriz es: [" << matriz[0] << ", " << matriz[1] << ", " << matriz[2] << "]\n";
   system("PAUSE");
   return 0;
}
si un problema no tiene solucion entonces no es un problema...es algo inevitable

Horricreu

#5
De nada ::) Por cierto, no hace falta que uses system() ya que no funciona en todos los sistemas operativos. Utiliza cin.get().

flony

si es q como me inicie en bat me encanta ver que hace mi code...y lo de cin.get(). tomo el dato
si un problema no tiene solucion entonces no es un problema...es algo inevitable