Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Compila bien y no corre

Estas en el tema de Compila bien y no corre en el foro de C/C++ en Foros del Web. El siguiente programa compila bien pero no corre, la verdad no se por que? Uso el DevC++. Código: //Programa que calcula el m.c.d de dos ...
  #1 (permalink)  
Antiguo 30/06/2010, 19:55
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 0
Compila bien y no corre

El siguiente programa compila bien pero no corre, la verdad no se por que?


Uso el DevC++.


Código:
//Programa que calcula el m.c.d de dos numeros
//enteros positivos.
#include<iostream>
#include<conio2.h>

using namespace std;

int main()
{
  int a=0,b=0,mayor=0, menor=0,residuo=0,divisor=0,dividendo=0,resultado=0,mcd=0;
   cout<<"Entra dos numeros enteros: ";
    cin>>a>>b;

     if(a>=b)
     {
       mayor=a;
       menor=b;
     }else
          {
            mayor=b;
            menor=a;
          }
           dividendo=menor;
           divisor=mayor;

             do{
                 resultado=divisor/dividendo;
                  residuo=divisor%dividendo;
                   divisor=dividendo;
                    dividendo=residuo;
               }while(dividendo==0||residuo==0);

     mcd=dividendo;

     if(mcd==1)
     {
       cout<<"Los numeros :"<<a<<" y"<<b<<" son primos entre si pues el mcd es 1";
     } else
           {
             cout<<"El mcd de "<<a<<" y"<<b<<" es: "<<mcd;
           }

   getche();
   
   return 0;

}
  #2 (permalink)  
Antiguo 30/06/2010, 21:44
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Compila bien y no corre

te sugiero k hagas una prueba de escritorio para ver como se comporta tu algoritmo... haslo y tal vez tu mismo encuentres la solucion
  #3 (permalink)  
Antiguo 30/06/2010, 22:16
Avatar de extremoo  
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 0
Respuesta: Compila bien y no corre

tienes varios errores cuando defines las variables al comienzo ya que pides numeros de teclado a y b, siendo que inmediatamente le estas dando el valor 0.
tambien dices if(a>=b) a es mayor y b menor eso solo lo debes hacer si es estrictamente mayor porque en el caso que sean iguales no existe mayor ni menor deberia ser a>b
segundo cuando defines residuos o divisiones ocupa float ya que trabajas con decimales
tercero la libreria conio esta demas, un poco mejorado tu codigo quedaria de esta manera aunque aun no esta terminado debes corregir un par de cosas mas.

tambien cuando hacias el WHILE al final colocabas un ";" los while jamas terminan en punto y coma
trata de corregir un poco mas el codigo para que arroje los resultados al menos ya compila


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


ahora no se porque sale metido un #algo en la linea 26 ajajaja

Última edición por extremoo; 30/06/2010 a las 23:00

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:33.