Acabo de aprender el lenguaje C en mi primer año. Por favor, dígame cómo programar para determinar el palíndromo de números enteros. No se pueden utilizar matrices ni punteros. Lo mejor es tener un proceso detallado.
bool check(int x){
int i,j,maxx;//El límite superior predeterminado de la variable int aquí es 2^31-1, si es necesario, puede cambie int a long
for (maxx=1;maxx maxx/=10;//Prepárese para interceptar el bit más alto más tarde p> while (x>=10){//Bucle para detectar los bits más alto y más bajo de este entero hasta que solo quede un dígito del medio o no quede nadie i=x/maxx ;//Truncar el bit más alto del entero j=x%10;//Truncar el bit más bajo del entero if(i!=j) break; x%=maxx;x //=10;//Eliminar el bit más alto y el bit más bajo del número entero maxx/=100;//Prepárate para interceptar el bit más alto más tarde p> } return (x<10);// Si x<10, entonces el número cumple con los requisitos y es un número palíndromo } Hagamos una evaluación del programa de LZ: En primer lugar, los números con un solo dígito son palíndromos. Además, según el programa de LZ, números como 12341 también pueden considerarse palíndromos. Sólo los números con números completamente diferentes en ambos lados no son palíndromos. Y a k no se le asigna un valor inicial. Se recomienda eliminar la oración condicional if(n==1) Además, modifique la declaración for que compara uno por uno de la siguiente manera: for(i=0,j=n-1,k=1;i { if(A[i]!=A[j])// Siempre que un par de dígitos no cumpla las condiciones, no es un número palíndromo k=0; } ¿Por qué no puedo entender la segunda línea de mi programa? ...Es sólo una declaración de variables locales. ¿No está claro el alcance? El rango se puede ignorar. . Además, LZ dijo que no se pueden usar matrices ni punteros, por lo que me vi obligado a escribir así. . Espero que te pueda ayudar Olvidaste una de las cosas más importantes: ¡la matriz A no se calcula! (Pero dijiste que no puedes usar punteros de matriz) Will while(s>0) { s= s /10.0; n++;/*Obtiene el valor de n como el número de dígitos en A*/ } Cambiado a while (s>0) {a[n]=s%10;s/=10;/*De hecho, la secuencia obtenida es la secuencia inversa de este número, pero el juicio del número palíndromo todavía se invierte si se invierte el número literario, por lo que no importa*/ n++;/*El valor de n es el número de dígitos en A*/ } Además, quiero haber estado aprendiendo C desde que estaba en el primer grado de la escuela secundaria para la competencia de computación. Ahora estoy en el primer grado de la escuela secundaria. Si tienes alguna pregunta, puedes acudir a mí y haré todo lo posible para ayudarte.