Ayuda!

Iniciado por Josedamir., 27 Mayo 2019, 00:42 AM

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

Josedamir.

Muchach@s tengo una duda y quisiera que me hicieran el favor de aclararmela, ya que yo no noto el error en este codigo quisiera saber en que estoy fallando.
El programa debe imprimir el nombre de cada persona ingresada y su edad.
Gracias.
Código (cpp) [Seleccionar]

#include<iostream>
#include<cstring>
using namespace std;
int main(){
string nombre [3];
int edad[3];
for(int i=0;i<=3;i++){

cout<<"Digite nombre "<<i+1<<endl;cin>>nombre[i];
cout<<"Digite edad "<<i+1<<endl;cin>>edad[i];

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

cout<<" Nombre: "<<nombre[i]<<endl;
cout<<"Edad: "<<edad[i]<<endl;
cout<<" Bye "<<endl;


}



return 0;
}




[MOD] Usar etiquetas GeSHi para publicar código.

K-YreX

Un array de tamaño n va desde el 0 hasta el n-1, ambos incluidos.
Si el tamaño de esos arrays es 3, tienes que acceder a las posiciones 0,1 y 2 y en ese for estás accediendo a la posición 3 que está fuera de los límites.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

Enzo Sandoval

Verdad si cierto, deberias cambiar la condicion de ese for por
Código (cpp) [Seleccionar]
string nombre [3];
   int edad[3];
   for(int i=0;i<3;i++){//acá como dice YreX-DwX, tu haces esto 0,1,2,3
    cout<<"Digite nombre "<<i+1<<endl;
cin>>nombre[i];//acá te falto acseder a ese posision del arreglo
cout<<"Digite edad "<<i+1<<endl;
cin>>edad[i];//acá tambien te falto acseder a ese posision del arreglo
fflush(stdin);//linpiesa de bufer
   }
    for(int i=0;i<3;i++){//Bueno aca tambien, habias puesto desde 0 hasta 3 cuando es desde 0 hasta 2
    cout<<" Nombre: "<<nombre[i]<<endl;
      cout<<"Edad: "<<edad[i]<<endl;
      cout<<" Bye "<<endl;//Este Bye lo repites en cada repetision xd
   }


Hace dos noches empece a leer un libro de C++ y vi eso tal vez te pueda ayudar, me llamo Enzo, tengo 9 años y vivo en la Argentina.  ;D

K-YreX

@Enzo, parece que no está poniendo el índice i entre corchetes porque al no usar etiquetas de código, eso se traduce como cursiva. Por eso a partir de donde debería estar la i entre corchetes  la letra empieza a salir en cursiva.
Si vas a acabar todos tus mensajes con tu nombre y tu edad, ponlo en tu firma, por lo menos para ahorrarte el escribirlo en cada mensaje  :xD
Y si es cierto que tienes 9 años y que por tanto imagino que estás empezando con la programación, no cojas los malos hábitos desde pequeño, no uses <fflush(stdin)>
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;