elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error al compilar programa en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al compilar programa en c++  (Leído 2,559 veces)
LauraD

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Error al compilar programa en c++
« en: 23 Agosto 2014, 03:19 am »

Hola!

Tengo que realizar el siguiente programa: Solicitar al usuario dos números y definir cuales son los divisores de cada uno de esos números y cuales tienen en común...

Esto llevo del código, pero al ejecutarlo solicita los dos números y luego muestra un mensaje de windows que dice que el programa dejo de funcionar...

Les agradeceria si me ayudan a corregir el error ya que no sé que es lo que esta fallando. Gracias

Código:
#include <cstdlib> 
#include <iostream>
using namespace std;
int main()
{
    int m,n,i,j,cont;
    i=0;
    cont=0;
   
    cout<<"Por Favor Digite 2 numeros "<<endl;
    cin>>m;
    cin>>n;
   
       
        for(i=0;i<m;i++)
        {
                         
        if(m%i==0)
    {
            cout<<"Los divisores de "<<m<<"son: "<<i<<endl;
    cont=cont+1;
        }
   
    cout<<"Hay "<<cont<<"Divisores del numero "<<m<<endl;
    }
   

system ("PAUSE");
return EXIT_SUCCESS;
}


En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Error al compilar programa en c++
« Respuesta #1 en: 23 Agosto 2014, 03:38 am »

En la primera iteración en esta linea:

Código
  1. if(m % i == 0)

Estas aplicado el operador modulo sobre m cuando i tiene el valor de cero


En línea

Bob1098

Desconectado Desconectado

Mensajes: 87


Ver Perfil
Re: Error al compilar programa en c++
« Respuesta #2 en: 23 Agosto 2014, 17:20 pm »

Me gustaría darte un par de consejos. El primero es que no uses system("pause");, es una simple cuestión de portabilidad, al usarlo tienes que incluir la librería "cstdlib", y esta función esta ejecutando el comando "pause" que es propio del cmd de Windows. Con esto evitas que tu programa pueda ser ejecutado en Linux, u otras plataformas. Aunque no tiene demasiada importancia, es mejor acostumbrarse a usar cin.get(); que tiene la misma función y no necesita otra librería que no sea "iostream". Otra cosa es que en esta parte del código:

Código
  1. i=0;
  2. cont=0;
  3.  
  4.    cout<<"Por Favor Digite 2 numeros "<<endl;
  5.    cin>>m;
  6.    cin>>n;
  7.  
  8.  
  9.        for(i=0;i<m;i++)
  10.        {
  11.  
  12.        if(m%i==0)
  13.     {
  14.            cout<<"Los divisores de "<<m<<"son: "<<i<<endl;
  15.     cont=cont+1;
  16.        }
  17.  
  18.     cout<<"Hay "<<cont<<"Divisores del numero "<<m<<endl;
  19.    }
  20.  
  21.  

No es necesario que inicialices la variable i como 0, ya que eso lo haces en el bucle for. Y por último es lo que dice Blaster, en el if estas dividiendo el numero entre 0, lo cual no se puede hacer ni en matemáticas ni en programación.

Espero haberte ayudado, un saludo.
En línea

Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Error al compilar programa en c++
« Respuesta #3 en: 24 Agosto 2014, 21:23 pm »

hola amiga.
Bueno deja de funcionar por que recuerda que no puedes dividir entre 0 y como el for lo inicias desde 0 entonces por eso ocurre un error lo único que debes hace es iniciar el for desde 1 y se soluciona.

Saludos.
Drewermerc.
En línea

flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: Error al compilar programa en c++
« Respuesta #4 en: 25 Agosto 2014, 04:16 am »

Drewermerc tiene razón
ahora el razonamiento del algoritmo seria mas o menos asi
1º determinar el menos(dividir mas arriba de eso no tiene sentido)
2º el for tendría como limite el menor
Código:
if(m%i==0)
     {
            cout<<"Los divisores de "<<m<<"son: "<<i<<endl;
esta bien, no se para que guardar el quantum lo importante es guardar los números. Lo que lleva al punto 4
Citar
cuales tienen en común
guardar cada numero tanto de m como de n(critica constructiva llamar numero 1 y numero 2 son mas expresivo el nombre de la variable), podría ser en un vector del tamaño del menor , supongo debe haber alguna opción mas optima.
5º comparar los vectores y determinar los números iguales
jajajaj
se me ocurrio algo mas practico, pero bue no puedo mostrar el code porque no se hacen tareas...pero digamos usando el if que generaste pero anidado ;)
« Última modificación: 25 Agosto 2014, 04:43 am por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error al compilar
Programación Visual Basic
newbY 2 2,008 Último mensaje 9 Noviembre 2007, 13:40 pm
por newbY
Tengo una duda al compilar mi programa me marca error en esto
.NET (C#, VB.NET, ASP)
Ivs_mx 2 3,395 Último mensaje 2 Octubre 2012, 15:52 pm
por leosansan
como compilar en el programa deb c++
Programación C/C++
wornmachine 2 1,825 Último mensaje 12 Octubre 2014, 11:50 am
por DeMoNcRaZy
help!! mi programa modular me da error al compilar
Programación C/C++
pablombf 4 3,714 Último mensaje 5 Noviembre 2017, 18:27 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines