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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Qué error tengo en mi programa ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Qué error tengo en mi programa ?  (Leído 1,527 veces)
naiken

Desconectado Desconectado

Mensajes: 6



Ver Perfil
Qué error tengo en mi programa ?
« en: 22 Diciembre 2018, 02:40 am »

Hola, buen día/noche tengo un programa en el que me pide lo siguiente:

Leer dos números enteros y determinar a cuánto es igual el producto del primer dígito de c/u. Y mi código es el siguiente:

Código
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. main()
  6. {
  7.    int n1,n2,r1,r2,pro;
  8.  
  9.    cout<<"Ingrese dos numeros: ";
  10.    cin>>n1>>n2;
  11.  
  12.    if(n1>=10 && n1<=99 && n2>=10 && n2<=99)
  13.    {
  14.        while(n1!=0 && n2!=0)
  15.        {
  16.            r1 = n1%10;
  17.            n1 = n1/10;
  18.  
  19.            r2 = n2%10;
  20.            n2 = n2/10;
  21.  
  22.        }
  23.  
  24.  
  25.            pro = n1*n2;
  26.            cout<<"Primeros digitos: "<<n1<<" "<<n2<<endl;
  27.            cout<<"Producto de los digitos: "<<pro<<endl;
  28.  
  29.    }
  30.  
  31.    else
  32.    {
  33.        cout<<"Deben ser de dos digitos, intente de nuevo...";
  34.    }
  35. }
  36.  
------------------------

AL ejecutarlo no me multiplican los primeros digitos :/ se quedan en 0 , hice la prueba de escritorio y si, como tengo la condición hasta que sea igual a 0  termina el bucle y por tanto los resultados de n1,r1,n2 y r2 llegan a ser 0 pero por más que trato de pensarle no doy :/ siento que es la condición pero no tengo más idea :'/ si alguien podría apoyarme por favor , se los agradecería muchisimo  :huh:


« Última modificación: 22 Diciembre 2018, 07:34 am por naiken » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Qué error tengo en mi programa ?
« Respuesta #1 en: 22 Diciembre 2018, 02:56 am »

El código del programa ponlo entre etiquetas de código GeSHi, encima del cuadro de texto.

El <while> divide cada número hasta que los dos son 0. Entonces el resultado es 0 * 0 = 0. Además usas un contador <i> que no tiene ninguna utilidad.Si el número tiene que tener dos cifras obligatoriamente, sólo necesitas dividir el número entre 10 una vez.
En un caso general con cualquier número de cifras tienes que hacer un bucle como el que tienes pero fíjate que la primera cifra de cada número se guarda en r1 y r2 respectivamente, no en n1 y n2 (estos valdrán 0). Suerte :-X

PD: Los problemas relacionados con este tipo de ejercicios se solucionan cogiendo un papel y un boli o pensando lo que estás haciendo, no poniendo código sin pensar...


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
naiken

Desconectado Desconectado

Mensajes: 6



Ver Perfil
Re: Qué error tengo en mi programa ?
« Respuesta #2 en: 22 Diciembre 2018, 07:29 am »

De hecho, publicar aquí fue mi última opción T.T porque ya tenía un gran tiempo pensando y analizando el problema , pero obvio que le seguía pensando, mientras pues no está de más el pedir un apoyo el cual te agradezco mucho!!! lo del contador ya lo había quitado pero de tanta prueba que le hacía no lo quité y se vio acá (me disculpo) y gracias por lo de la edición del código en GeSHi ya lo edité :D Muchas gracias por la observación! seguiré con esto :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