Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/01/2012, 10:09
DickGumshoe
 
Fecha de Ingreso: enero-2012
Mensajes: 68
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Problema en bucle for

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.     int nadie=1;
  14.     struct
  15.     {
  16.      char nombre[20];
  17.      int dia;
  18.      int mes;
  19.      int edad;
  20.      int ano;
  21.     }datos[8];
  22.    
  23.     int i,comprobar;
  24.    
  25.     for(i=0;i<=7;i++)
  26.     {
  27.      
  28.       printf("Introduce nombre\n");
  29.       scanf("%s",datos[i].nombre);
  30.      
  31.       printf("Introduce edad\n");
  32.       scanf("%d",&datos[i].edad);
  33.      
  34.       printf("Introduce mes de cumpleanos\n");
  35.       scanf("%d",&datos[i].mes);
  36.      
  37.       printf("Introduce ano de nacimiento\n");
  38.       scanf("%d",&datos[i].ano);
  39.       printf("\n\n");
  40.     }
  41.     do
  42.     {
  43.     printf("Introduce el mes en el que quieres comprobar si alguna persona cumple anos\n");
  44.     scanf("%d",&comprobar);
  45.    
  46.    for(i=0;i<=7;i++)
  47.     {
  48.       if(comprobar==datos[i].mes)
  49.       {
  50.         printf("%s cumple %d anos este mes\n",datos[i].nombre,datos[i].edad+1);
  51.         nadie = 0;
  52.       }
  53.     }
  54. if (nadie == 1) printf("Nadie cumple anos este mes\n");
  55.     }while(comprobar!=0);
  56.    
  57.    
  58.     system("pause");
  59.     return 0;
  60.    
  61. }
Si por ejemplo introduzco de datos:
1 2 2 2
2 2 2 2
3 2 2 2
4 2 2 2
5 2 2 2
6 2 2 2
7 2 2 2
8 2 2 2

Y, después, compruebo los meses 1 -> Sale que nadie cumple ese mes
2 -> Sale todos los que cumplen ese mes
3 -> Sale directamente que compruebe otro mes.

Gracias.