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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Por qué no va este código?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Por qué no va este código?  (Leído 786 veces)
GominaTilted

Desconectado Desconectado

Mensajes: 36


Ver Perfil
¿Por qué no va este código?
« en: 24 Noviembre 2018, 17:56 pm »

Muy buenas, no entiendo por qué en este código solo se opera bien la primera vez que se realiza el bucle.

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

int main ()
{
int num = 1;
int suma = 0;
int div = 1;

cout << "Este programa nos dice si un numero entero introducido por teclado es perfecto, abundante o deficiente." << endl << endl;

while (num != 0)
{
cout << "Dame un numero (introduce 0 para salir): ";
cin >> num;

for (div = 1; div < num; div++)
{
if ((num % div) == 0)
{
suma = suma + div;
cout << suma;
}
}

if (num == 0)
{
cout << "";
}

else if (suma == num)
{
cout << "El numero " << num << " es perfecto." << endl << endl;
}

else if (suma > num)
{
cout << "El numero " << num << " es abundante." << endl << endl;
}

else
{
cout << "El numero " << num << " es deficiente." << endl << endl;
}

}

return 0;
}


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.596


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ¿Por qué no va este código?
« Respuesta #1 en: 24 Noviembre 2018, 18:03 pm »

Seguramente es por que la variable Suma, solo se inicializa antes del ciclo, y no dentro de el mismo.

Asi en la segunda vuelta su valor ya no es  0 antes de hacer cualquier calculo.

saludos!


En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
GominaTilted

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: ¿Por qué no va este código?
« Respuesta #2 en: 24 Noviembre 2018, 18:11 pm »

Exacto, me he dado cuenta nada más preguntarlo. Muchas gracias.
En línea

GominaTilted

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: ¿Por qué no va este código?
« Respuesta #3 en: 24 Noviembre 2018, 20:13 pm »

Bueno, vuelvo con otra duda xD. Esta vez este código no sé por qué no funciona. La función debe de detectar los numeros abundantes dentro de un rango introducido por el usuario (ambos extremos excluidos), y mostrar la suma de ellos. Por ejemplo, entre 1 y 13 debería de dar 12, y da 177.

Código:
int SumaAbundantes (int x, int y)
{
int suma = 0, i, div, resultado = 0;

cout << "Dame un entero positivo: ";
cin >> x;
cout << "Dame otro entero positivo: ";
cin >> y;

for (i = x + 1; i < y; i++)
{
for (div = 1; div < i; div++)
{
if ((i % div) == 0)
{
suma = suma + div;

if (suma > i)
{
          resultado = resultado + i;
}
cout << resultado << endl;
}

}

}

cout << "La suma de los numeros enteros abundantes positivos entre " << x << " y " << y << " es " << resultado;

return resultado;
}
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 902



Ver Perfil
Re: ¿Por qué no va este código?
« Respuesta #4 en: 24 Noviembre 2018, 22:03 pm »

Primero: no entiendo muy bien el objetivo del programa, osea no entiendo que es lo que quieres calcular, por lo que haré uso de mi imaginación.
Segundo: por qué pasas como parámetros x e y si nada más empezar la función los modificas?? :huh:
Tercero: estás seguro de que la suma y el resultado sólo deben ponerse a 0 al empezar la función y no habrá que ponerlos a 0 en cada iteración?? Y lo digo como pregunta porque repito que no sé cual es el propósito de la función pero estos suelen ser los errores más comunes por eso te los comento.

Y si no se arregla con lo que te he dicho explícame por favor el uso de esa función y cómo la usas en el <main> ya que no sé qué dos parámetros le pasas (aunque no haces uso de ellos).
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Le podeis echar un ojo a este codigo??. Es un codigo pequeño y facil. « 1 2 »
PHP
70N1 10 5,046 Último mensaje 19 Febrero 2010, 18:14 pm
por 70N1
que es este codigo?
Criptografía
elshaker 9 8,394 Último mensaje 30 Diciembre 2012, 09:22 am
por 0x3c
Que codigo es este?
Programación Visual Basic
TheJucas21 9 3,149 Último mensaje 5 Marzo 2014, 16:26 pm
por TheJucas21
Ayudenme con este codigo en C porfavor.!!debo entregar este deber hoy :(
Programación C/C++
Matahembras 0 767 Último mensaje 15 Febrero 2015, 20:53 pm
por Matahembras
convirtiendo este codigo PHP en codigo Java
Java
alejogzn 5 1,504 Último mensaje 12 Abril 2015, 02:50 am
por DarK_FirefoX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines