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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ejercicio que me tiene pensativo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio que me tiene pensativo  (Leído 3,181 veces)
Cesar Lozano

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ejercicio que me tiene pensativo
« en: 21 Julio 2017, 00:38 am »

Amigos no es por molestar pero tengo el presente ejercicio y me siento perdido
Pedir un número entero, e imprimir la suma de los dígitos impares

llevo esto:
Código
  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. long num,sum;
  6. short nn,cop,cd=0;
  7. cout<< "ingrese un numero entero positivo: ";
  8. cin>>num;
  9. cop=num;
  10. while (num!=0)
  11. {cd++;num%=10;
  12. }
  13. nn==num%10;
  14. if (nn%2==0)
  15. sum=cd+cd++;
  16. cout << " para el numero" <<cop << "la suma de sus impares es igual a: " <<sum;
  17. }
  18.  
- pero no me siento con buena base para arreglarlo ¿podrian ayudarme?



· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 21 Julio 2017, 01:14 am por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejercicio que me tiene pensativo
« Respuesta #1 en: 21 Julio 2017, 01:33 am »

tu identación no es buena y hace el codigo dificil de entender

no entiendo tu codigo o más o menos que intenta...

en linea 13 tienes un error, eso que colocaste literalmente no hace nada (comparas con ==, pero el valor comparado no hace nada)

en la linea 14, no es recomendable que uses estructuras de control sin llaves {} si eres principante

la linea 15 es poco recomendable, ya que cd+cd++ puede generarte un resultado inesperado ya que podría variar depende del compilador

hay 2 maneras de hacerlo... por algoritmo o la matemática 

por algoritmo
lo haría igual hasta la linea 8
pero luego usaría un for desde 1 hasta menor o igual que num, usando cop como iterador y el paso +=2
es decir
Código:
for(cop=1; cop <= num; cop+=2)

esto haría que el codigo fuera solo por los impares
 y solo tendrías que sumar todos los numeros...

por matemática
sabemos que la suma de una continuidad es igual la mitad del primero sumado al ultimo, siendo los numeros impares la mitad de esta continuidad, sería la mitad de eso, con un ajuste de 1 según el caso

yo lo haría


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Cesar Lozano

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ejercicio que me tiene pensativo
« Respuesta #2 en: 21 Julio 2017, 01:46 am »

muchas gracias por la guía intentare arreglar eso y en caso tal podría enviar el progreso?
lo que trato a veces es confundirme usando los bucles como no son.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejercicio que me tiene pensativo
« Respuesta #3 en: 21 Julio 2017, 01:49 am »

si quieres publica aquí lo que lleves cuando lo consideres listo o te tranques gravemente...
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Cesar Lozano

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ejercicio que me tiene pensativo
« Respuesta #4 en: 21 Julio 2017, 06:20 am »

Amigo he cambiado la estructura, asi me quedo:
Código
  1. #include<iostream>
  2. #include<math.h>
  3. using namespace std;
  4. int main()
  5. {
  6. int n,cop;
  7. int s=0,a;
  8. cout<< "ingrese un numero: ";
  9. cin>>n;
  10. cop=n;
  11. while (n>0)
  12. {a=n%10;
  13. n=n/10;
  14. if(a%2!=0)
  15. s=s+a;
  16. }
  17. cout << "para el numero " <<cop << " la suma de sus impares es igual a: " <<s;
  18. }
  19.  
una ultima pregunta amigo, si yo quiero expresar esto en pseudo codigo como denoto los valores como s=0, antes de la funcion while?
« Última modificación: 21 Julio 2017, 06:23 am por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejercicio que me tiene pensativo
« Respuesta #5 en: 21 Julio 2017, 06:32 am »

había entendido el problema anteriormente mal.. no es la suma de ls impares hasta el numero, sino la suma de sus digitos impares (empezando por la izquierda o derecha? es decir de 12 el resultado es 1 o 2?)

el if está de más... puedes dividir 2 veces seguidas y no necesitas el control de flujo...

math.h sobra, si contar que estás en c++, math.h es c, debes usar cmath

usa identación y usa nombre de variables comprensibles  para que el codigo sea legible

main siempre debe retornar 0

· Los códigos deben ir en etiquetas GeSHi segunda vez que lo corrijo...

puedes hacer directamente
Código
  1. while (n>0){
  2.  s+=n%10;
  3.  n=n/100;
  4. }


en pseudo código, depende de la notación que use tu clase... usualmente es así mismo
Código:
entero s = 0
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Cesar Lozano

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ejercicio que me tiene pensativo
« Respuesta #6 en: 21 Julio 2017, 06:45 am »

muchas gracias  ;-) ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines