• Domingo 15 de Diciembre de 2024, 04:46

Autor Tema:  Compila bien y no corre  (Leído 1337 veces)

jairogon

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Compila bien y no corre
« en: Jueves 1 de Julio de 2010, 03:56 »
0
El siguiente programa compila bien pero no corre, la verdad no se por que?


Uso el DevC++.


Código: Text
  1.  
  2. //Programa que calcula el m.c.d de dos numeros
  3. //enteros positivos.
  4. #include<iostream>
  5. #include<conio2.h>
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.   int a=0,b=0,mayor=0, menor=0,residuo=0,divisor=0,dividendo=0,resultado=0,mcd=0;
  12.    cout<<"Entra dos numeros enteros: ";
  13.     cin>>a>>b;
  14.  
  15.      if(a>=b)
  16.      {
  17.        mayor=a;
  18.        menor=b;
  19.      }else
  20.           {
  21.             mayor=b;
  22.             menor=a;
  23.           }
  24.            dividendo=menor;
  25.            divisor=mayor;
  26.  
  27.              do{
  28.                  resultado=divisor/dividendo;
  29.                   residuo=divisor%dividendo;
  30.                    divisor=dividendo;
  31.                     dividendo=residuo;
  32.                }while(dividendo==0||residuo==0);
  33.  
  34.      mcd=dividendo;
  35.  
  36.      if(mcd==1)
  37.      {
  38.        cout<<"Los numeros :"<<a<<" y"<<b<<" son primos entre si pues el mcd es 1";
  39.      } else
  40.            {
  41.              cout<<"El mcd de "<<a<<" y"<<b<<" es: "<<mcd;
  42.            }
  43.  
  44.    getche();
  45.    
  46.    return 0;
  47.  
  48. }
  49.  

czealt

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Compila bien y no corre
« Respuesta #1 en: Jueves 1 de Julio de 2010, 06:52 »
0
La condicion de salida del  bucle esta mal. Deberia ser:

  do{
  ....
  }while(dividendo != 0);


y tambien debes efectuar este cambio en la linea 34:

  mcd = divisor;

Saludos.

jairogon

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Compila bien y no corre
« Respuesta #2 en: Jueves 1 de Julio de 2010, 14:42 »
0
Cita de: "czealt"
La condicion de salida del  bucle esta mal. Deberia ser:

  do{
  ....
  }while(dividendo != 0);


y tambien debes efectuar este cambio en la linea 34:

  mcd = divisor;

Saludos.


Gracias

czealt

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Compila bien y no corre
« Respuesta #3 en: Jueves 1 de Julio de 2010, 19:51 »
0
De nada.