• Jueves 25 de Abril de 2024, 18:37

Autor Tema:  Error compilacion  (Leído 1483 veces)

badyalberto

  • Miembro activo
  • **
  • Mensajes: 77
    • Ver Perfil
Error compilacion
« en: Sábado 17 de Enero de 2009, 12:28 »
0
Código: Text
  1.  
  2. #include<stdio.h>
  3.  
  4. float velocitat();
  5. float distancia();
  6. float temps();
  7. int menu();
  8.  
  9. int main()
  10. {
  11.    
  12.     int opcion;
  13.     int fin;
  14.     float resultat;
  15.  
  16.     fin = 0;
  17.     do
  18.     {
  19.         opcion = menu();
  20.         switch (opcion)
  21.         {
  22.         case 1:
  23.             resultat=velocitat();
  24.             printf("La velocitat es %0.2f Km/h n", resultat);
  25.             break;
  26.         case 2:
  27.             resultat=distancia();
  28.             printf("La distancia que a recorregut el tren es: %0.2f Km n", resultat);
  29.             break;
  30.         case 3:
  31.              resultat=temps();
  32.              printf("El temps que a trigat el tren en fer %0.2f kilomtres es: %0.2f hores n", distancia,resultat);
  33.              break;
  34.         case 4:
  35.              fin=1;
  36.              break;
  37.         default:
  38.                 printf("Opcio incorrecta n");
  39.                 break;    
  40.         }
  41.          if (!fin)
  42.         {
  43.             printf("nn");
  44.             getchar();
  45.             getchar();
  46.         }
  47.     }while (!fin);
  48. }
  49. int menu()
  50. {
  51.     int op;
  52.  
  53.     printf("Indica quina es l'incognita que vols saber:n");
  54.     printf("1) Velocitat del tren n");
  55.     printf("2) Distancia entre A i B n");
  56.     printf("3) Temps de recorregut n");
  57.     printf("4) Salir n");
  58.    
  59.      do
  60.      {
  61.         printf("Elija una opción: ");
  62.         scanf("%d", &op);
  63.         if ((op != 1) && (op !=2) && (op != 3) && (op != 4))
  64.         {
  65.                 printf("Opcio incorrecte n");
  66.         }              
  67.      }while (op < 1 || op > 4);
  68.      return op;
  69. }
  70. float velocitat()
  71. {
  72.       float distancia,temps,resultat;
  73.      
  74.       printf("Programa que calcula la velocitat del tren n");
  75.       printf("n");
  76.       printf("n");
  77.       printf("Digues la distancia en kilometres: n");
  78.       scanf("%f", &distancia);
  79.       printf("Digues el temps en hores: n");
  80.       scanf("%f", &temps);
  81.       resultat=distancia*temps;
  82.       return resultat;
  83.      
  84. }
  85. float distancia()
  86. {
  87.       float velocitat,temps,resultat;
  88.      
  89.       printf("Programa que calcula la distancia que a recorregut el tren n");
  90.       printf("n");
  91.       printf("n");
  92.       printf("A quina velocitat anaba el tren: n");
  93.       scanf("%f", &velocitat);
  94.       printf("Quant de temps a trigat: n");
  95.       scanf("%f", &temps);
  96.       resultat=velocitat*temps;
  97.       return resultat;
  98.      
  99. float temps()
  100. {
  101.       float distancia,velocitat,resultat;
  102.        
  103.       printf("Programa que calcula el temps a trigat el tren en realitzar un recorregut: n");
  104.       printf("n");
  105.       printf("n");
  106.       printf("Quina distancia a recorregut el tren: n");
  107.       scanf("%f", &distancia);
  108.       printf("A quina velocitat anaba el tren: n");
  109.       scanf("%f", &velocitat);
  110.       resultat=distancia/velocitat;
  111.       return resultat;
  112.      
  113. }      
  114.  
  115.  

Alguien sabe pq en la linea 98 float temps(), me dice que espera un ; antes de float

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error compilacion
« Respuesta #1 en: Sábado 17 de Enero de 2009, 13:32 »
0
Tenes que terminar la funcion con la llave ... es la misma logica que te respondi aca meana.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

badyalberto

  • Miembro activo
  • **
  • Mensajes: 77
    • Ver Perfil
Re: Error compilacion
« Respuesta #2 en: Sábado 17 de Enero de 2009, 14:26 »
0
okis muchas gracias. otra cosa:

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. int mcd(int dividendo, int divisor);
  5.  
  6. int main()
  7. {
  8.     int num,i,resto;
  9.     int dividendo=num, divisor=num;
  10.  
  11.    
  12.     for (i = 1; i <= 2; i++)
  13.      {
  14.          printf("Introduce el primer numero: n");
  15.          scanf("%d", &num);
  16.          
  17.                      if (num > dividendo)
  18.                      {  
  19.                            dividendo = num;
  20.                      }  
  21.                      else if (num < dividendo)
  22.                      {
  23.                           divisor = num;
  24.                      }
  25.      }
  26.      resto=mcd(int dividendo,int divisor);
  27.      
  28.      printf("El maxim comu divisor es: %d n", dividendo);
  29. }
  30. int mcd(int dividendo, int divisor)
  31. {
  32.     int resto;
  33.     while (resto<=0)
  34.     {
  35.     resto=dividendo;      
  36.     resto = dividendo % divisor;
  37.     divisor=resto;
  38.     }
  39.  
  40. return resto;
  41. }
  42.  
  43.  

creeis que esta bien echo esto, para calcular el mcd, y otra cosa pq me da error en la linea q invoco la funcion, linea 25

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error compilacion
« Respuesta #3 en: Sábado 17 de Enero de 2009, 15:32 »
0
No mire el codigo, solo te digo como compilarlo, con la logica arreglate, fijate si da bien lo resultados y depuralo:

resto=mcd(int dividendo,int  divisor);

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

badyalberto

  • Miembro activo
  • **
  • Mensajes: 77
    • Ver Perfil
Re: Error compilacion
« Respuesta #4 en: Domingo 18 de Enero de 2009, 14:15 »
0
Código: Text
  1.  
  2. #include<stdio.h>
  3.  
  4. int mcd(int dividendo, int divisor);
  5.  
  6. int main()
  7. {
  8.     int num,i,resto;
  9.     int dividendo=num, divisor=num;
  10.    
  11.     printf("Programa que calculo el MCD y el MCM: n");
  12.     printf("n");
  13.     printf("n");
  14.    
  15.     for (i = 1; i <= 2; i++)
  16.      {
  17.          printf("Introduce un numero: n");
  18.          scanf("%d", &num);
  19.          
  20.                      if (num > dividendo)
  21.                      {  
  22.                            dividendo = num;
  23.                      }  
  24.                      else if (num < dividendo)
  25.                      {
  26.                           divisor = num;
  27.                      }
  28.      }
  29.      resto=mcd(dividendo,divisor);
  30.      
  31.      printf("El maxim comu divisor es: %d n", resto);
  32.      getchar();
  33.      getchar();
  34. }
  35. int mcd(int dividendo, int divisor)
  36. {
  37.     int resto;
  38.     while(resto<=0)
  39.     {
  40.     resto = dividendo % divisor;
  41.     divisor=resto;
  42.     divisor=dividendo;
  43.     }
  44.  
  45. return resto;
  46. }
  47.  
  48.  
  49.  

ahora tengo esto pero solo me divide una vez el while :S

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Error compilacion
« Respuesta #5 en: Lunes 19 de Enero de 2009, 10:26 »
0
la condicion del while se ejecuta ANTES del contenido del nido. Asi pues, al entrar en el while (resto<=0) no se ejecuta el nido por que resto puede estar inicializado con otro valor.  Usa mejor do { } while(...) ademas, deberias inicializar el resto por si acaso.