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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Aprendiendo a programar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Aprendiendo a programar  (Leído 1,731 veces)
Joan.Agusti

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Aprendiendo a programar
« en: 8 Mayo 2016, 16:23 pm »

Hola a todos, hace menos de una setmana que estoy aprendiendo a programar con C++, debido a que en la universiad lo necesito para hacer calculos numericos, y bueno, me he cogido un libro de la biblioteca, Problemas Resueltos de  Programación en Lenguaje C++ y he ha salido un problema que necessito vuestra ayuda.
Dice así: Escriba un programa que acepte un entero positivo y determine si es un numero perfecto (un numero perfecto es un numero el cual se puede obtener sumando sus divisores propios, y un divisor propio es aquel que n%d==0).
El caso es que este ejercicio lo tengo resuelto, pero lo he intentado "ampliar", haciendo que el cogido entre un bucle en el cual puedas introducir el numero sin que se cierre la ventana.

Código:
#include<iostream>
using namespace std;

int main(){
    int numero;
    int suma=0;
    int divisor=1;
    char opcion;
   
  do {
       
       
    cout<<"Introduzca un numero: "<<endl;
    cin>>numero;
   
    cout<<"Los divisores propios de "<<numero<<" son: " <<endl;
    while(divisor<numero){
                          if(numero%divisor==0){
                                                cout<<divisor<<" ";
                                                suma+=divisor;
                                                }
                          divisor++;
   
                         
                         
    }
    if(numero==suma)
       cout<<"el numero es perfecto"<<endl;
    else
       cout<<"el numero no es perfecto"<<endl;


          cout<<"Quieres poner otro numero [s/n]? "<<endl;
          cin>>opcion;

  }while(opcion=='s');
   

       
       system("pause");
       return 0;
       
}

Asi, lo he he hecho para ampliar el codio es introducir este do-while. Pero el problema es que cuando lo hago, la parte de la suma no me sale en la ventana, y no se porque.

Otra duda: tengo que poner siempre system("pause"); al final de cada codigo? es que si no lo pongo, la ventana se me cierra muy rapido y no puedo fer el output.
Utilizo el DevC++ como compilador.

Gracias :)


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Aprendiendo a programar
« Respuesta #1 en: 8 Mayo 2016, 16:28 pm »

Con respecto a lo del system("pause");, una vez que acabe el programa, se va a cerrar. Si la consola la creó el mismo programa, también se cerrar.a la consola. La opción, es que primero abras un cmd, y luego llames al programa ">> programa.exe".´Sinó, pues system("pause"); o cualquier método que quieras para detener el programa.

Con respecto a lo otro, con "cin>>" es preferible no mezclar "cin>>int" con "cin>>string" con "cin>>char". En general, no mezclar, porque dará problemas. La opción más sencilla que tienes es que "opcion" sea int, y en vez de pedir 's' o 'n', pidas '1' o '0', por ejemplo.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Aprendiendo a programar en c++ un poco duro « 1 2 3 4 »
Programación C/C++
dairus20 38 17,653 Último mensaje 28 Febrero 2011, 23:15 pm
por Eternal Idol
Aprendiendo a programar SMTP
Programación C/C++
x64core 4 3,852 Último mensaje 6 Septiembre 2012, 05:08 am
por x64core
Estoy aprendiendo a programar web[Ayuda]
Desarrollo Web
jorpumon 2 2,841 Último mensaje 7 Agosto 2013, 23:12 pm
por moi_realine
La computación como una asignatura más: aprendiendo a programar desde los 6 años
Noticias
wolfbcn 4 2,017 Último mensaje 31 Mayo 2016, 15:20 pm
por AlbertoBSD
Aprendiendo a programar
Hacking
jaider.pacheco 3 3,285 Último mensaje 25 Mayo 2020, 00:27 am
por UnaiiM
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines