Foros ZackYFileS

Foros ZackYFileS (http://foros.zackyfiles.com/index.php)
-   PROGRAMACIÓN Lenguajes: Visual Basic, C++, etc (http://foros.zackyfiles.com/forumdisplay.php?f=370)
-   -   Ejercicio C++ -> Invertir un numero (http://foros.zackyfiles.com/showthread.php?t=418962)

Snake12 21/03/2006 13:58

Ejercicio C++ -> Invertir un numero
 
Hola amigos!!, de nuevo estoy más liao que las alpargatas de un romano, y no me aclaro. Lo que me piden hoy es lo siguiente:

Se pedirá al usuario que introduzca por teclado una secuencia de dígitos de longitud indeterminada y, posteriormente, se mostrarán por pantalla en orden inverso. La secuencia de entrada termina cuando se introduzca un 0.

Ejemplo:
Introduzca secuencia de dígitos: 3 1 4 6 9 8 0
La secuencia invertida es: 8 9 6 4 1 3

Lo he intentado con un array de caracteres, definiendo las constantes FINCAD, MAXCAD, y ENTER. Le doy la vuelta al numero, pero justo antes me salen caracteres raros, como corazoncitos, cuadraditos, etc...y además no sé cómo hacer para que cuando introduzca el cero ya no coja más numeros, y además k el cero no aparezca como primer numero al darle la vuelta.

Como siempre, os pido vuestra ayuda, y os agradezco mucho todo lo que me habéis ayudado, sobre todo a Coke, Kolmo y Efirenet, de verdad, muchas gracias. Bueno amigos, espero no ser muy pesado, pero no me sale....:(

Ta luegooo!!

Coke 21/03/2006 15:09

como debe salir, como string o como int? o es igual?

Coke.

Coke 22/03/2006 03:27

...............

Snake12 22/03/2006 13:05

Coke, siento no haber respondido antes porque no me ha sido posible.

Ya estuve mirando antes de preguntarte el hilo del número capicuo, que además te doy las gracias (que en su día no te las di) por ayudarme en ese problema, y me ha servido para hacerlo de forma iterativa, pero es que se me olvidó decirte que nos piden el problema de forma recursiva, y como un subprograma además.

Yo he hecho esto, pero no sirve de mucho...jejeje:

void digitos_inversos ( int c )
{
if ( c != 0 )
{
digitos_inversos (c);
cout << c << endl;
}
}

No sé muy bien ni por qué lo he hecho así, ni por qué da el resultado que da...la verdad es que un compañero de clase me dijo que el lo hizo así, y, o yo no lo he sabido trasnportar aquí, o es que la programación no es lo mío...:(

Bueno Coke, muchas gracias de nuevo!!

Coke 23/03/2006 02:12

................

Snake12 24/03/2006 12:59

Hola Coke, de nuevo me disculpo por no haber podido responder antes. Gracias por tu interés en mi ejercicio, he resuelto muchas dudas viendo tus ejemplos!, gracias de nuevo.

Bueno, aquí te pongo como lo hice al final yo, pero tiene un inconveniente, que no es tan estricto como los tuyos, es decir, al meter un cero no te muestra la cifra de forma inversa, hay que meter como última cifra el cero y luego darle a enter, pero bueno, no se me ocurrió de otra forma. Aquí lo tienes:

[PHP]void digitos_inversos ()
{
char c;
cin >> c;

if ( c!= '0')
{
digitos_inversos ();
cout << c;
}
else
{
cout << endl << "La secuencia de digitos invertida es: ";
}
}[/PHP]

Con su correspondiente llamada dentro de un programa que no lo pongo, porque es muy grande. Bueno, gracias de nuevo, y ya luego te preguntaré más cosillas, jejejeje...ta luego!!!

peroWeno 29/04/2006 02:57

Código:

#include <unistd.h>
#include <stdio.h>
#define _MAX_SIZE 512

void invertir(char* cadena){
  if (*cadena!=0x00){
      invertir(cadena++);
      putchar(*cadena);
  }
}

int main(){
  char cadena[_MAX_SIZE];
  printf("Introduzca la secuencia de entrada: ");
  scanf("%[1-9 ]",cadena);
  printf("\nLa secuencia invertida es: ");
  invertir(cadena);
  printf("\n");
  return 0;
}


ochavac 18/02/2009 20:46

salida del programa
 
bueno un saludo aqui desde costa rica

amigo una pregunta
xq justo cuando voy a digitar el numero el programa se sale?

muchas gracias por la ayuda que brindan!!


La franja horaria es GMT +2. Ahora son las 16:02.

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate