Ver Mensaje Individual
  #11 (permalink)  
Antiguo 05/07/2011, 13:35
kurama19901
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problema con Ciclo Infinito y Condicionales en C

juas ahora tengo errores con case 2, 5,6 nada mas y faltaria hacer el 8 q ese ya bueno jeje =) disculpa tanta molestia si puedes ayudarme con esto

Código C:
Ver original
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #include<time.h>
  5. #define MAX 100
  6. #define True 1
  7. #define False 0
  8.  
  9.  
  10. typedef float vec_precios[MAX];
  11. typedef int Cant_HabP[MAX];
  12. typedef int Numb_Serv[1];
  13. typedef char cadena[MAX];
  14. typedef int Fecha[3];
  15.  
  16. typedef struct
  17. {
  18.     float Presupuesto_I;
  19.     Fecha FechaIni;
  20.     int Hab;
  21.     int Pisos;
  22.     cadena Mat_Hab[MAX][MAX];
  23. }DatosH;
  24.  
  25. Fecha ContF;
  26.  
  27. typedef struct
  28. {
  29.     int N_Hab;
  30.     int N_Serv;
  31.     int N_Menu;
  32.     cadena vec_Hab;
  33.     cadena vec_Serv;
  34.     cadena vec_Menu;
  35.     vec_precios P_Hab;
  36.     vec_precios P_Serv;
  37.     vec_precios P_Menu;
  38.     cadena D_Menu;
  39.     cadena D_Serv;
  40.    
  41. }Precios;
  42.  
  43. typedef struct
  44. {
  45.     cadena Nom;
  46.     cadena Apellido;
  47.     long int Ced;
  48.     Fecha CheckIn;
  49.     Fecha CheckOut;
  50.     Fecha Reporte;
  51.     Fecha ReporteF;
  52.     int Hora;
  53.     int Hora2;
  54.     cadena t_hab;
  55.     int A;
  56.     int N;
  57.     int Cama_Ad;
  58.     int CantP;
  59.     int CantC;
  60.     int CantS;
  61.     Numb_Serv Num;
  62.     cadena Comida;
  63.     cadena Serv;
  64.     int CantR;
  65.     cadena TR;
  66.    
  67. }Usuario;
  68.  
  69. typedef struct
  70. {
  71.     long int CB;
  72.     cadena NombreB;
  73.     cadena ApellidoB;
  74.     char puntos;
  75. }Basura;
  76.  
  77.  
  78. void Operacion(Usuario us)
  79. {
  80.     Basura bs;
  81.     int F,i;
  82.     long int Cdd;
  83.     char P;
  84.     char A = 'A';
  85.     char N = 'N';
  86.     us.A = us.N = 0;
  87.     FILE *operacion;
  88.     operacion = fopen("Operaciones.in","r");
  89.     if (operacion == NULL) printf("No abrio el Archivo\n");
  90.     else  {
  91.         while (!feof(operacion)) {
  92.             if (fscanf(operacion,"%d",&F) < 1  ) break;
  93.  
  94.             //printf("%d\n",F);
  95.                   //scanf("%d",&i);
  96.             switch (F) {
  97.             case 0: ContF[1]++;
  98.             break;
  99.             case 1:  
  100.                 fscanf(operacion,"%d",&us.CheckIn[1]);
  101.                 printf("%d/",us.CheckIn[1]);
  102.                 fscanf(operacion,"%d",&us.CheckIn[2]);
  103.                 printf("%d/",us.CheckIn[2]);
  104.                 fscanf(operacion,"%d",&us.CheckIn[3]);
  105.                 printf("%d   ",us.CheckIn[3]);
  106.                 fscanf(operacion,"%d",&us.CheckOut[1]);
  107.                 printf("%d/",us.CheckOut[1]);
  108.                 fscanf(operacion,"%d",&us.CheckOut[2]);
  109.                 printf("%d/",us.CheckOut[2]);
  110.                 fscanf(operacion,"%d",&us.CheckOut[3]);
  111.                 printf("%d/",us.CheckOut[3]);
  112.                 fscanf(operacion,"%[^0-9]s",us.t_hab);
  113.                 printf("%s",us.t_hab);
  114.                 fscanf(operacion,"%d",&us.CantP);
  115.                 printf("%d\n",us.CantP);
  116.                 for (i = 0; i < us.CantP; i++)
  117.                 {
  118.                     while ((P = fgetc(operacion) ) != 'N' && P != 'A'  );
  119.                     if (P == A) //Comparacion de Caracteres
  120.                     {
  121.                         us.A++;
  122.                         printf("%c ",P);
  123.                         fscanf(operacion,"%ld", &bs.CB);
  124.                         printf("%ld ",bs.CB);
  125.                         fscanf(operacion,"%s",bs.NombreB);
  126.                         fscanf(operacion,"%s",bs.ApellidoB);
  127.                         printf(" %s %s \n", bs.NombreB, bs.ApellidoB);
  128.                     //scanf("%d",&F);
  129.                     }
  130.                     else
  131.                     {
  132.                         us.N++;
  133.                         fscanf(operacion,"%s",bs.NombreB);
  134.                         fscanf(operacion,"%s",bs.ApellidoB);
  135.                         printf("%s %s \n", bs.NombreB, bs.ApellidoB);
  136.                     }
  137.          
  138.                 }
  139.  
  140.                 break;
  141.                 case 2:
  142.                     fscanf(operacion,"%ld",&bs.CB);
  143.                     printf("%ld ",bs.CB);
  144.                     fscanf(operacion,"%d%c%d",&us.Hora,&bs.puntos,&us.Hora2);
  145.                     printf("%d%c%d",us.Hora,bs.puntos,us.Hora2);
  146.                 break;
  147.                 case 3:
  148.                     fscanf(operacion,"%ld", &bs.CB);
  149.                     printf("%ld ",bs.CB);
  150.                     fscanf(operacion,"%d%c%d",&us.Hora,&bs.puntos,&us.Hora2);
  151.                     printf("%d%c%d\n",us.Hora,bs.puntos,us.Hora2);
  152.                 break;
  153.                 case 4:                
  154.                     fscanf(operacion,"%ld",&bs.CB);
  155.                     printf("%ld ",bs.CB);
  156.                     fscanf(operacion,"%d%c%d",&us.Hora,&bs.puntos,&us.Hora2);
  157.                     printf("%d%c%d",us.Hora,bs.puntos,us.Hora2);
  158.                 break;
  159.                 case 5:
  160.                     fscanf(operacion,"%d",&us.CantC);
  161.                     printf("%d\n",us.CantC);
  162.                     for (i = 0; i < us.CantC; i++)
  163.                     {
  164.                     fscanf(operacion,"%s",us.Comida);
  165.                     printf("%s\n",us.Comida);
  166.                     }
  167.                 break;
  168.                 case 6:
  169.                     fscanf(operacion,"%ld", &bs.CB);
  170.                     printf("%ld\n",bs.CB);
  171.                     fscanf(operacion,"%d\n",&us.CantS);
  172.                     printf("%d\n",us.CantS);
  173.                     for (i = 0; i < us.CantS; i++)
  174.                     {
  175.                         fscanf(operacion,"%[^0-9]s",us.Serv);
  176.                         printf("%s\n",us.Serv);
  177.                     }
  178.                    
  179.                 break;
  180.                 case 7:
  181.                     fscanf(operacion,"%d",&us.CantR);
  182.                     printf("%d\n",us.CantR);
  183.                     for (i = 0; i < us.CantR ; i++)
  184.                     {  
  185.                     fscanf(operacion,"%s",us.TR);
  186.                     printf("%s ",us.TR);
  187.                     fscanf(operacion,"%d",&us.Reporte[1]);
  188.                     printf("%d ",us.Reporte[1]);
  189.                     fscanf(operacion,"%d",&us.Reporte[2]);
  190.                     printf("%d ",us.Reporte[2]);
  191.                     fscanf(operacion,"%d",&us.Reporte[3]);
  192.                     printf("%d  ",us.Reporte[3]);
  193.                     fscanf(operacion,"%d",&us.ReporteF[1]);
  194.                     printf("%d ",us.ReporteF[1]);
  195.                     fscanf(operacion,"%d",&us.ReporteF[2]);
  196.                     printf("%d ",us.ReporteF[2]);
  197.                     fscanf(operacion,"%d",&us.ReporteF[3]);
  198.                     printf("%d\n",us.ReporteF[3]);
  199.                     }
  200.                 break;
  201.                
  202.              
  203.                 }
  204.         //while ((P = fgetc(operacion) ) != '\n');
  205.         }
  206.         fclose(operacion);
  207.     }
  208.  
  209. }
  210.  
  211. main()
  212. {
  213.     Precios ph;
  214.     Usuario us;
  215.     DatosH dh;
  216.    
  217.     //Declaracion de Archivos
  218.     FILE *Preciosk, *operaciones, *sobrecarga, *inicializar;
  219.     FILE *reservaciones, *contabilidad, *reportes, *sobrecarg;
  220.    
  221.     //Archivos de Entrada
  222.     inicializar=fopen("inicializar.in","r");
  223.     Preciosk=fopen("precios.in","r");
  224.     operaciones=fopen("operaciones.in","r");
  225.     sobrecarga=fopen("sobrecarga.in","r");
  226.     //Archivos de Salida
  227.     reservaciones=fopen("reservaciones.out","r");
  228.     contabilidad=fopen("contabilidad.out","r");
  229.     reportes=fopen("reportes.out","r");
  230.     sobrecarg=fopen("sobrecarga.out","r");
  231.    
  232.    
  233.             //Llenar_RegH(dh,inicializar);
  234.             printf("\n");
  235.             //precios(ph,Preciosk);
  236.             Operacion(us);
  237.  
  238. }

y ak te dejo el archivo de entrada de operaciones.in completo
Cita:
0-----> Operacion 0
0-----> Operacion 0
1
18 04 2011 24 04 2011
DOBLE
3
A 12345678 Alberto Martinez
A 13456789 Margarita Hernandez
N Andreina Martine
0-----> Operacion 0
0-----> Operacion 0
3-----> Operacion 3
12345678 14:05
6-----> Operacion 6
12345678
2
CAM_A 6
CAJ_F 4
5-----> Operacion 5
4
ESP_C
LOM_M
JUG_L
MALTA
0-----> Operacion 0
0-----> Operacion 0
0-----> Operacion 0
0-----> Operacion 0
7 ---> Operacion 7
1
b 18 04 2011 22 04 2011
0-----> Operacion 0
0-----> Operacion 0
4 -----> Operacion 4
12345678 10:50
8-----> Operacion 8
8-----> Operacion 8