Ya, se que de goto hay que salir corriendo pero una persona preguntaba como saber si un numero es capicuo o no y que no podia usar ni bucles ni condicionales, solo ternarios y lo hice con recursividad con funciones y me dijo que no puede usar funciones tampoco con lo que solo se me ocurrio el uso de goto para emular el mismo funcionamiento y quedó asi:
Código PHP:
#include <iostream.h>
using namespace std;
int main(int argc, char* argv[])
{
int num,aux,numInv=0,capicuo,resto;
cout << "Introduce un numero: ";
cin >> num;
aux=num;
InvertirNumero:
resto=aux%10;
numInv=numInv*10+resto;
aux/=10;
aux!=0 ? goto InvertirNumero : goto Fin;
Fin:
(numInv-num==0) ? capicuo=1 : capicuo=0;
capicuo==1 ? cout << "Es capicuo" : cout << "No es capicuo";
return 0;
}
El problema que tengo es que en la parte de InvertirNumero uso operadores ternarios y dentro uso goto y no se lo traga diciendome que hay un error de sintaxis. ¿Alguien me explica como solucionar eso y por que da ese error?
Si lo pongo asi compila y funciona perfectamente pero me obliga a usar condicional y no se puede:
Código PHP:
#include <iostream.h>
using namespace std;
int main(int argc, char* argv[])
{
int num,aux,numInv=0,capicuo,resto;
cout << "Introduce un numero: ";
cin >> num;
aux=num;
InvertirNumero:
resto=aux%10;
numInv=numInv*10+resto;
aux/=10;
if(aux!=0) goto InvertirNumero; else goto Fin;
Fin:
(numInv-num==0) ? capicuo=1 : capicuo=0;
capicuo==1 ? cout << "Es capicuo" : cout << "No es capicuo";
return 0;
}