Autor
|
Tema: Números capicúa (Leído 19,453 veces)
|
suzy
Desconectado
Mensajes: 18
|
Veréis, he encontrado un código para averiguar qué números son capicúa y cuáles no cuando se introducen por teclado. Sin embargo, está hecho para que sólo pueda averiguar números de 3 cifras. Me gustaría que me ayudáseis a modificar el código para que pueda leer números de 4 cifras. ¿Qué debería cambiar? Aquí el código: #include <iostream> using namespace std;
int main() { int a; char ca[100]; Ingres: cout << "Digite un numero de 3 digitos: "; cin >> ca; int lnumc = strlen(ca); a = atoi(ca); if (lnumc==3) { int n1 = a/100; int n2 = a/10 - n1*10; int n3 = a - (n1*100 + n2*10); int ni = n3*100 + n2*10 + n1; if (ni-a == 0) cout << "El numero es capicua"<<endl; else cout << "El numero no es capicua"<<endl; } else { cout <<endl<< "El numero debe tener 3 digitos"<<endl; goto Ingres; }
cin.get(); cin.get(); return 0; }
|
|
|
En línea
|
|
|
|
naderST
|
Aquí tienes uno de N dígitos #include <stdio.h> #include <string.h> #define N 30 char num[N + 1]; // N dígitos máximo int i, j, flag; int main() { flag = 1; // Validar si es de un dígito if(j == i) flag = 0; while(j > i) if(num[i++] != num[j--]) { flag = 0; break; } if(flag) else return 0; }
|
|
|
En línea
|
|
|
|
suzy
Desconectado
Mensajes: 18
|
Perdona naderST, se me había olvidado mencionar que tenía que hacerlo con la librería iostream, nada de #include <stdio.h> o #include <string.h>.Gracias de todas formas. A ver si alguien me puede echar un cable.
|
|
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
@suzy, simplemente sustituye printf's por cout's y poco mas.
@amchacon, un tip, a partir de C99 existe el tipo _Bool, no hace falta que uses un entero.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Pues me fastidiaste el código que te había preparado:
#include <iostream> #include <cstring> #include <cstdlib> using namespace std; int main(){ int i; char cad[100],cad1[100]; cout << "Digite un numero: "; cin >> cad; for (i=0;i<cad[i]!='\0';i++) cad1[(strlen (cad))-i-1]=cad[i]; cad1[(strlen (cad))]='\0'; if (strcmp(cad1, cad)!=0 || cad1[0]=='0') cout << "El numero "<<atoi (cad1 )<<" no es capicua"<<endl ; else cout << "El numero "<<(cad ) <<" es capicua"<<endl; cin.get(); return 0; }
Saluditos!. ...
|
|
|
En línea
|
|
|
|
suzy
Desconectado
Mensajes: 18
|
¿Por qué se tendría que sustituir todo eso para que sólo sea con la librería iostream? ¿Alguna ayudita?
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
¿Por qué se tendría que sustituir todo eso para que sólo sea con la librería iostream? ¿Alguna ayudita?
Difícil es, más no imposible.
Por ejemplo:#include <iostream> #include <algorithm> using namespace std; int main() { string str,str2; cout << "Introduce el numero: "; cin >> cad; cin >> str; str2 = str.substr(0, str.length()); reverse(str.begin(), str.end()); if(str2 == str) cout << "El numero: "<<str2<<" es capicua." <<endl; else cout << "El numero: "<<str2<<" no es capicua.." <<endl; return 0; }
!Por dios!, si he usado algorithm y a lo mejor sólo es con iostream. UMMM. Pues por ejemplo así:#include<iostream> using namespace std; int main() { int numero0, numero1, numero2,numero_reves; cout<<"Introduce el numero: "; cin>>numero0; numero1 = numero2 =numero0; numero_reves = 0; while( numero1 > numero_reves && numero2 > numero_reves ) { numero_reves = 10 * numero_reves + numero1 % 10; numero2=numero1; numero1 /= 10; } if( numero1 == numero_reves || numero2 == numero_reves) cout<<"Es capicua "<< numero0; else cout<<"No es capicua "<< numero0; return 0; }
Ahora creo que sí, sólo está iostream.Saluditos!. ...
|
|
|
En línea
|
|
|
|
suzy
Desconectado
Mensajes: 18
|
Gracias leosansan! Pero tengo dos problemillas: Al ejecutar el programa se cierra Dev-C++. ¿Cómo puedo evitarlo? Y lo segundo es más una duda que un problema. Mi profesor no nos ha enseñado a utilizar & y %. ¿Pará qué sirven? ¿Se podría sustituir por otra cosa más simple? Gracias por vuestra ayuda.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Gracias leosansan! Pero tengo dos problemillas: Al ejecutar el programa se cierra Dev-C++. ¿Cómo puedo evitarlo? Coloca cin.get( )antes del return. Y una cosa que no me canso de repetir, Dev-C está algo más que obsoleto, como el TurboC2.0. Desde que puedas consigue te el Code::Blocks que es libre y está actualizado hasta este año. Y lo segundo es más una duda que un problema. Mi profesor no nos ha enseñado a utilizar & y %. ¿Pará qué sirven? ¿Se podría sustituir por otra cosa más simple? Son los operadores AND=&& y O=||, mientras que % calcula el resto de la división, es un operador más de casi cualquier lenguaje, como lo son el + - * /, así que vete acostumbrándote a él. En cambio & es para indicar la dirección y también se usa a nivel de operador de bits. Cualquier otra duda no dudes en consultarla, bien por aquí o vía mp.
Saluditos!. .....P.D: El segundo código de los dos últimos que te pase es "denso", por lo que es normal que te cueste. Ni te cuento lo que me costo a mí.
|
|
« Última modificación: 10 Marzo 2013, 14:20 pm por leosansan »
|
En línea
|
|
|
|
suzy
Desconectado
Mensajes: 18
|
Ya sé que Dev-C está obsoleto, pero con mi profesor sólo podemos usar este, que le vamos a hacer Por cierto, ha surgido otro problema, ahora no se me cierra al abrir el programa, pero sí se cierra cuando introduzco los números y le doy a enter. ¿A qué puede deberse?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda ; [C#] Algoritmo para saber si un Nº es capicua.
.NET (C#, VB.NET, ASP)
|
N0vat0
|
6
|
31,925
|
1 Enero 2010, 01:50 am
por ManuelFerAlz
|
|
|
capicua de un rango de numeros
Programación C/C++
|
ryan parker
|
4
|
9,396
|
4 Junio 2011, 18:48 pm
por ryan parker
|
|
|
[Ayuda] Programa capicua
« 1 2 »
Programación C/C++
|
Sothu
|
10
|
4,939
|
3 Noviembre 2015, 04:43 am
por Zodiak98
|
|
|
Capicua
Programación C/C++
|
Cjr997
|
2
|
2,449
|
5 Octubre 2016, 15:26 pm
por dato000
|
|
|
Numero al azar capicua
Programación C/C++
|
emilioFIE
|
4
|
3,531
|
15 Junio 2020, 20:48 pm
por emilioFIE
|
|