encontre el error, como dijo CalgaryCorpus el segundo for no terminaba asi que cambie las condiciones aqui el condiciones
antes:
Código C++:
Ver originalfor (i=1; numcifra/2; i++)
{
if (n_dd[i]==n_dd[numcifra/2-i])
{
suma=0 ; //suma sera cero
}else{
suma=suma+1;
}
}
ahora
Código C++:
Ver originalfor (i=0; i!=numcifra/2; i++)
{
if (n_dd[i]==n_dd[numcifra-1-i])
{
suma+=0 ; //suma sera cero
}else{
suma+=1;
}
}
el codigo completo seria
Código C++:
Ver original#include <iostream.h>
#include <conio.h>
int main ()
{
//variables
int num, numcifra=1, i = 0, suma=0, n_dd[20]; //debido a que n_dd tiene 21 elementos solo se puede procesar numeros hasta de 21 cifras
//entrada
cout << "Ingrese el numero (maximo 21 cifras): ";
cin >> num;
//====================================================================================
/*/contar el numero de cifras
for (i=1; num/10!=0;i++)
{
num=num/10;
numcifra=numcifra+1;
}
cout << numcifra;*/
//====================================================================================
//contamos las cifras y sacamos digito por digito a cada cifra y lo ponemos en la variable
for (i=0; num/10!=0;i++)// != desigual que
{
numcifra+=1; //aki se cuentan las cifras
n_dd[i]=num%10;
num=num/10;
if (num/10==0) // aki se da el valor para la ultima cifra
{
n_dd[i+1]=num;
}
}
//igualamos
for (i=0; i!=numcifra/2; i++)
{
if (n_dd[i]==n_dd[numcifra-1-i])
{
suma+=0 ; //suma sera cero
}else{
suma+=1;
}
}
// si suma=0 entonces es capicua
if (suma==0)
{
cout << "\n\nEl numero es capicua" << endl;
}else{
cout << "\n\nEl numero es no capicua" << endl;
}
//
getche ();
return 0;
}