Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problemilla con un duplicador de números

Estas en el tema de Problemilla con un duplicador de números en el foro de C/C++ en Foros del Web. Bueno este es mi primer post aquí y el programa es también de los primeros así que lo siento si algo está mal, aun soy ...
  #1 (permalink)  
Antiguo 24/04/2011, 01:46
 
Fecha de Ingreso: abril-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
Problemilla con un duplicador de números

Bueno este es mi primer post aquí y el programa es también de los primeros así que lo siento si algo está mal, aun soy un novatillo!

El problema planteado es que el usuario escribe un numero k igual al numero de n que quiere duplicar y los n que han de ser duplicados.

La entrada seria por ejemplo 2 3 4 y la salida debería ser 6 8. Y si la entrada es 4 la salida deberia ser nula y esperar una nueva k.

Bien antes de todo dejo lo que intenta ser mi solución a aquello que me piden:

Código c++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main ()
  7. {
  8.     string st;
  9.     while (getline(cin, st))
  10.     {
  11.           int n=st[0];
  12.           int k=2;
  13.           while (n>0 and k<st.size())
  14.           {
  15.           cout << st[k]+st[k] << " ";
  16.           n=n-1;
  17.           k=k+2;
  18.           }
  19.           cout << endl;
  20.     }
  21. }

Os prometo que lo he repasado más de una vez pero no encuentro el error, se que la clave está en que el numero st[k]+st[k] no se porque no puede salir y sale otro diferente (104,102 o cosas así...).

En cambio cuando quito el (+st[k]) funciona, aunque no lo duplica claro, no lo entiendo :(

Bueno, haber si me podéis echar un cable, no pido que me lo solucionéis pero haber si me podéis dar alguna pista o alguna ayuda os lo agradecería, que voy un poco perdido!

Muchas Gracias!
  #2 (permalink)  
Antiguo 24/04/2011, 04:51
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: Problemilla con un duplicador de números

Te falla por esto:
Código:
int n=st[0];
Al extraer un carácter de un string, estás extrayendo el número ascii de ese carácter. Los valores ascii de los dígitos son del 48 al 57 inclusive. Es decir n=48 si st[0]='0'. Además de esto, tu código solo te deja usar números del 0 al 9 ya que solo extraes un carácter.

Yo de ti haría esto:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main ()
  7. {
  8.     int nums[3];
  9.     while (cin>>nums[0]>>nums[1]>>nums[2])
  10.     {
  11.         cout<<nums[0]*nums[1]<<" ";
  12.         cout<<nums[0]*nums[2]<<endl;
  13.     }
  14.     return 0;
  15. }
__________________
Foros Desarrollo de Juegos

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:58.