Ver Mensaje Individual
  #9 (permalink)  
Antiguo 03/07/2011, 17:53
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema con Ciclo Infinito y Condicionales en C

Mira te corregi montones de errores que habia. Espero que no hagas un solo copiar y pegar y que te fijes en lo errores que tenias. Que compares los dos codigos, asi aprendes mas.

Saludos

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 char cadena[MAX];
  13. typedef int Fecha[3];
  14.  
  15. typedef struct
  16. {
  17.     float Presupuesto_I;
  18.     Fecha FechaIni;
  19.     int Hab;
  20.     int Pisos;
  21.     cadena Mat_Hab[MAX][MAX];
  22. }DatosH;
  23.  
  24. Fecha ContF;
  25.  
  26. typedef struct
  27. {
  28.     int N_Hab;
  29.     int N_Serv;
  30.     int N_Menu;
  31.     cadena vec_Hab;
  32.     cadena vec_Serv;
  33.     cadena vec_Menu;
  34.     vec_precios P_Hab;
  35.     vec_precios P_Serv;
  36.     vec_precios P_Menu;
  37.     cadena D_Menu;
  38.     cadena D_Serv;
  39.    
  40. }Precios;
  41.  
  42. typedef struct
  43. {
  44.     cadena Nom;
  45.     cadena Apellido;
  46.     long int Ced;
  47.     Fecha CheckIn;
  48.     Fecha CheckOut;
  49.     int Hora;
  50.     cadena t_hab;
  51.     int A;
  52.     int N;
  53.     int Cama_Ad;
  54.     int CantP;
  55.    
  56. }Usuario;
  57.  
  58. typedef struct
  59. {
  60.     long int CB;
  61.     cadena NombreB;
  62.     cadena ApellidoB;
  63. }Basura;
  64.  
  65.  
  66.  
  67. void Operacion(Usuario us)
  68. {
  69.     Basura bs;
  70.     int F,i;
  71.     long int Cdd;
  72.     char P;
  73.     char A = 'A';
  74.     char N = 'N';
  75.     us.A = us.N = 0;
  76.     FILE * operacion;
  77.     operacion = fopen("Operacion.in","r");
  78.     if (operacion == NULL) printf("No abrio el Archivo\n");
  79.     else  {
  80.         while (!feof(operacion)) {
  81.             if (fscanf(operacion,"%d",&F) < 1  ) break;
  82.  
  83.             //printf("F=%d\n",F);
  84.                     //scanf("%d",&i);
  85.             switch (F) {
  86.             case 0: ContF[1]++; break;
  87.             case 1:  
  88.                 fscanf(operacion,"%d",&us.CheckIn[1]);
  89.                 fscanf(operacion,"%d",&us.CheckIn[2]);
  90.                 fscanf(operacion,"%d",&us.CheckIn[3]);
  91.  
  92.                 fscanf(operacion,"%d",&us.CheckOut[1]);
  93.                 fscanf(operacion,"%d",&us.CheckOut[2]);
  94.                 fscanf(operacion,"%d",&us.CheckOut[3]);
  95.  
  96.                 fscanf(operacion,"%[^0-9]s",us.t_hab);
  97.                 fscanf(operacion,"%d",&us.CantP);
  98.                 for (i = 0; i < us.CantP; i++)
  99.                 {
  100.                     while ((P = fgetc(operacion) ) != 'N' && P != 'A'  );
  101.                     if (P == A) //Comparacion de Caracteres
  102.                     {
  103.                         us.A++;
  104.                         fscanf(operacion,"%ld", &(bs.CB));
  105.                         fscanf(operacion,"%s",bs.NombreB);
  106.                         fscanf(operacion,"%s",bs.ApellidoB);
  107.                                         printf("%s %s \n", bs.NombreB, bs.ApellidoB);
  108.                     //scanf("%d",&F);
  109.                     }
  110.                     else
  111.                     {
  112.                         us.N++;
  113.                         fscanf(operacion,"%s",bs.NombreB);
  114.                         fscanf(operacion,"%s",bs.ApellidoB);
  115.                                         printf("%s %s \n", bs.NombreB, bs.ApellidoB);
  116.                     }
  117.          
  118.                 }
  119.                 break; 
  120.              
  121.                 }
  122.         //while ((P = fgetc(operacion) ) != '\n');
  123.         }
  124.         fclose(operacion);
  125.     }
  126.                            
  127. }
  128.  
  129. int main()
  130. {
  131.     Precios ph;
  132.     Usuario us;
  133.     DatosH dh;
  134.    
  135.     //Declaracion de Archivos
  136.     FILE *Preciosk, *operaciones, *sobrecarga, *inicializar;
  137.     FILE *reservaciones, *contabilidad, *reportes, *sobrecarg;
  138.    
  139.     //Archivos de Entrada
  140.     //inicializar=fopen("inicializar.in","r");
  141.     //Preciosk=fopen("precios.in","r");
  142.     //operaciones=fopen("operaciones.in","r");
  143.     //sobrecarga=fopen("sobrecarga.in","r");
  144.     //Archivos de Salida
  145.     //reservaciones=fopen("reservaciones.out","r");
  146.     //contabilidad=fopen("contabilidad.out","r");
  147.     //reportes=fopen("reportes.out","r");
  148.     //sobrecarg=fopen("sobrecarga.out","r");
  149.    
  150.    
  151.             //Llenar_RegH(dh,inicializar);
  152.             printf("\n");
  153.             //precios(ph,Preciosk);
  154.             Operacion(us);
  155.  
  156. }