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

No entiendo que hago mal en estos FOR

Estas en el tema de No entiendo que hago mal en estos FOR en el foro de C/C++ en Foros del Web. Mi resultado es: Como ven me imprime un 8 cuando deberia ser un 4. ¿Que sucede? Mi codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original #include<stdio.h> ...
  #1 (permalink)  
Antiguo 26/04/2011, 16:50
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
No entiendo que hago mal en estos FOR

Mi resultado es:


Como ven me imprime un 8 cuando deberia ser un 4.

¿Que sucede?

Mi codigo:
Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. int main(){
  5.    
  6.     int i,edad,e[2];
  7.  
  8.     for(i=1;i<=8;i++){
  9.        
  10.         printf("\n Edad del nino %d: ",i); scanf("%d",&edad);
  11.         e[i] = edad;
  12.     }
  13.  
  14.     for(i=1;i<=8;i++){
  15.         printf("\n\t las edades son %d",e[i]);
  16.  
  17.     }
  18.  
  19.     getch();
  20.  
  21. }

Se los agradesco mucho.
  #2 (permalink)  
Antiguo 26/04/2011, 17:17
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: No entiendo que hago mal en estos FOR

Código:
int i,edad,e[2];
Estás intentando guardar 8 números en un array de 2 números.

Código:
for(i=1;i<=8;i++){
En C/C++ los arrays empiezan por 0

Prueba esto:

Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. int main(){
  5.  
  6.     int i,edad,e[8];
  7.  
  8.     for(i=0;i<8;i++){
  9.  
  10.         printf("\n Edad del nino %d: ",i+1); scanf("%d",&edad);
  11.         e[i] = edad;
  12.     }
  13.  
  14.     for(i=0;i<8;i++){
  15.         printf("\n\t las edades son %d",e[i]);
  16.  
  17.     }
  18.  
  19.     getch();
  20.  
  21. }
__________________
Foros Desarrollo de Juegos
  #3 (permalink)  
Antiguo 26/04/2011, 22:07
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: No entiendo que hago mal en estos FOR

Si es verdad eso hice mal.

Gracias amigo.
  #4 (permalink)  
Antiguo 28/04/2011, 12:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: No entiendo que hago mal en estos FOR

Hola,

una buena idea sería definir el número de niños mediante un constante. Así, en caso de querer cambiar el número de niños, sólo debes cambiar un número y no medio código.

Otro detallito: la función main() es de tipo int, por lo que debe de devolver un entero mediante la sentencia return

Código C:
Ver original
  1. #include<stdio.h>
  2.  
  3. // Defino NINIOS como una constante de valor 8
  4. #define NINIOS 8
  5.  
  6. int main()
  7. {
  8.     int i;
  9.     int edad;
  10.     int e[NINIOS];
  11.  
  12.     for( i=0; i<NINIOS; i++)
  13.       {
  14.         printf("\n Edad del ninio %d: ",i+1);
  15.         scanf("%d",&edad);
  16.         e[i] = edad;
  17.       }
  18.  
  19.     // Muestro las edades en el orden introducido
  20.       printf("\n\t Las edades son: ");
  21.  
  22.     for(i=0; i<NINIOS; i++)
  23.      {
  24.        printf("%d, ", e[i]);
  25.       }
  26.    
  27.     /* Con esto lo que consigues es que el programa no se cierre en la consola de
  28.         Windows. Si programas en Linux, esta sentencia no es necesaria */
  29.     getch();
  30.  
  31.    // Sentencia de retorno de la funcion main()
  32.      return 0;
  33. }

Un saludo,
gonzo13

Etiquetas: Ninguno
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 07:22.