Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/01/2012, 15:51
DickGumshoe
 
Fecha de Ingreso: enero-2012
Mensajes: 68
Antigüedad: 12 años, 3 meses
Puntos: 0
Problema en bucle for

Hola.

He estado haciendo este ejercicio que venía propuesto en un manual que estoy leyendo:

Código C:
Ver original
  1. /*Un programa que pida datos de 8 personas: nombre, dia de nacimiento, mes de
  2. nacimiento, y año de nacimiento (que se deben almacenar en una tabla de structs).
  3. Después deberá repetir lo siguiente: preguntar un número de mes y mostrar en
  4. pantalla los datos de las personas que cumplan los años durante ese mes. Terminará
  5. de repetirse cuando se teclee 0 como número de mes.*/
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <string.h>
  10.  
  11. int main()
  12. {
  13.     struct
  14.     {
  15.      char nombre[20];
  16.      int dia;
  17.      int mes;
  18.      int edad;
  19.      int ano;
  20.     }datos[8];
  21.    
  22.     int i,comprobar;
  23.    
  24.     for(i=0;i<=7;i++)
  25.     {
  26.      
  27.       printf("Introduce nombre\n");
  28.       scanf("%s",datos[i].nombre);
  29.      
  30.       printf("Introduce edad\n");
  31.       scanf("%d",&datos[i].edad);
  32.      
  33.       printf("Introduce mes de cumpleanos\n");
  34.       scanf("%d",&datos[i].mes);
  35.      
  36.       printf("Introduce ano de nacimiento\n");
  37.       scanf("%d",&datos[i].ano);
  38.       printf("\n\n");
  39.     }
  40.    
  41.     printf("Introduce el mes en el que quieres comprobar si alguna persona cumple anos\n");
  42.     scanf("%d",&comprobar);
  43.    
  44.     for(i=0;i<=7;i++)
  45.     {
  46.       if(comprobar==datos[i].mes)
  47.       {
  48.         printf("%s cumple %d anos este mes\n",datos[i].nombre,datos[i].edad+1);
  49.       }
  50.       if(comprobar!=datos[i].mes) printf("Nadie cumple anos este mes\n");
  51.     }
  52.    
  53.    
  54.     system("pause");
  55.     return 0;
  56.    
  57. }

El problema está en el bucle for del final.

Al ejecutar el programa, siempre sale "Nadie cumple años este mes" varias veces. He intentando poner "break", pero no sé si es correcto, o, en caso afirmativo, dónde colocarlo.

Muchas gracias.

Saludos.