Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Josedamir. en 27 Mayo 2019, 00:42 am



Título: Ayuda!
Publicado por: Josedamir. en 27 Mayo 2019, 00:42 am
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
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. int main(){
  5. string nombre [3];
  6. int edad[3];
  7. for(int i=0;i<=3;i++){
  8.  
  9. cout<<"Digite nombre "<<i+1<<endl;cin>>nombre[i];
  10. cout<<"Digite edad "<<i+1<<endl;cin>>edad[i];
  11.  
  12. }
  13. for(int i=0;i<=3;i++){
  14.  
  15. cout<<" Nombre: "<<nombre[i]<<endl;
  16. cout<<"Edad: "<<edad[i]<<endl;
  17. cout<<" Bye "<<endl;
  18.  
  19.  
  20. }
  21.  
  22.  
  23.  
  24. return 0;
  25. }
  26.  
  27.  


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


Título: Re: Ayuda!
Publicado por: K-YreX en 27 Mayo 2019, 00:46 am
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.


Título: Re: Ayuda!
Publicado por: Enzo Sandoval en 27 Mayo 2019, 03:48 am
Verdad si cierto, deberias cambiar la condicion de ese for por
Código
  1. string nombre [3];
  2.   int edad[3];
  3.   for(int i=0;i<3;i++){//acá como dice YreX-DwX, tu haces esto 0,1,2,3
  4.     cout<<"Digite nombre "<<i+1<<endl;
  5. cin>>nombre[i];//acá te falto acseder a ese posision del arreglo
  6. cout<<"Digite edad "<<i+1<<endl;
  7. cin>>edad[i];//acá tambien te falto acseder a ese posision del arreglo
  8. fflush(stdin);//linpiesa de bufer
  9.   }
  10.    for(int i=0;i<3;i++){//Bueno aca tambien, habias puesto desde 0 hasta 3 cuando es desde 0 hasta 2
  11.     cout<<" Nombre: "<<nombre[i]<<endl;
  12.       cout<<"Edad: "<<edad[i]<<endl;
  13.       cout<<" Bye "<<endl;//Este Bye lo repites en cada repetision xd
  14.   }


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


Título: Re: Ayuda!
Publicado por: K-YreX en 27 Mayo 2019, 04:00 am
@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)>