Ver Mensaje Individual
  #3 (permalink)  
Antiguo 31/08/2011, 09:23
edynperu
 
Fecha de Ingreso: agosto-2011
Mensajes: 2
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: programa que no tiene errores pero se para

encontre el error, como dijo CalgaryCorpus el segundo for no terminaba asi que cambie las condiciones aqui el condiciones

antes:
Código C++:
Ver original
  1. for (i=1; numcifra/2; i++)
  2.     {
  3.         if (n_dd[i]==n_dd[numcifra/2-i])
  4.         {
  5.                                  suma=0 ;      //suma sera cero
  6.         }else{
  7.               suma=suma+1;
  8.               }
  9.     }

ahora
Código C++:
Ver original
  1. for (i=0; i!=numcifra/2; i++)
  2.     {
  3.         if (n_dd[i]==n_dd[numcifra-1-i])
  4.         {
  5.                                  suma+=0 ;      //suma sera cero
  6.         }else{
  7.               suma+=1;
  8.               }
  9.     }

el codigo completo seria

Código C++:
Ver original
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4.  
  5. int main ()
  6. {
  7.     //variables
  8.     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
  9.     //entrada
  10.     cout << "Ingrese el numero (maximo 21 cifras): ";
  11.     cin >> num;
  12.     //====================================================================================
  13.     /*/contar el numero de cifras
  14.     for (i=1; num/10!=0;i++)
  15.     {
  16.         num=num/10;
  17.         numcifra=numcifra+1;
  18.     }
  19.     cout << numcifra;*/
  20.     //====================================================================================
  21.    
  22.     //contamos las cifras y sacamos digito por digito a cada cifra y lo ponemos en la variable
  23.     for (i=0; num/10!=0;i++)// != desigual que
  24.     {
  25.         numcifra+=1; //aki se cuentan las cifras
  26.         n_dd[i]=num%10;
  27.         num=num/10;
  28.         if (num/10==0) // aki se da el valor para la ultima cifra
  29.         {
  30.                         n_dd[i+1]=num;
  31.         }
  32.     }
  33.     //igualamos
  34.     for (i=0; i!=numcifra/2; i++)
  35.     {
  36.         if (n_dd[i]==n_dd[numcifra-1-i])
  37.         {
  38.                                  suma+=0 ;      //suma sera cero
  39.         }else{
  40.               suma+=1;
  41.               }
  42.     }
  43.     // si suma=0 entonces es capicua
  44.     if (suma==0)
  45.     {
  46.                 cout << "\n\nEl numero es capicua" << endl;
  47.     }else{
  48.           cout << "\n\nEl numero es no capicua" << endl;
  49.     }
  50.     //
  51.     getche ();
  52.     return 0;
  53. }

Última edición por edynperu; 31/08/2011 a las 10:37