Programación General > C/C++
numeros capicua
(1/1)
elpis:
Haber como es esto....
problema: todo numero que ingreso da null !!
el programa permite ingresar un numero y dice si es capicúa
//codigo
#include<stdio.h>
#include<conio.h>
#include<string.h>
char* capicua(char*);
char* capicua(char*num){
int largo=strlen(num),i;
char* auxi,otro;
for(i=0;i<largo;i++){
auxi=num;
num=num[largo];
num[largo]=auxi;
largo--;
}
i=0;
while (i<strlen(num)){
if(auxi==num){
i++;
if(i==strlen(num))
printf("Numero capicula");
}else{
printf("nttNo es capicua");
break;
}
}
}
void main(){
clrscr();
char* numero;
printf("Ingrese numero");
scanf("%s",&numero);
flushall();
printf("%s",capicua(numero));
getch();
}
elpis:
A ver ahora:
(todos los valores me da que NO es capicua) :ayuda:
--- Código: ---#include<stdio.h>
#include<conio.h>
#include<string.h>
char* invertir (char *);
char* invertir (char *n){
char* auxi;
int largo=(strlen(n)),o=0,i=0;
while (o<=(strlen(n))){
auxi[i]=n[largo];
largo--;
o++;
i++;
}
return auxi;
}
void main(){
clrscr();
char *numero,*resultado;
int conf,i;
printf("\n\n\t\tIngrese numero\n\t\t");
gets(numero);
clrscr();
// resultado=invertir(numero);
printf("resutado %s",invertir(numero));
for(i=0;i<strlen(numero);i++)
if(numero[i]==resultado[i]);
conf++;
if(conf==strlen(numero))
printf("\n\n\n\t\tEs capicua");
else
printf("\n\n\n\t\tNo es capicua");
getch();
}
--- Fin del código ---
Checho360:
En la función utilizas auxi como si fuera una cadena y es un apuntador a char. Tendrías que usar calloc para hacer eso.
herzdark:
estas recorriendo toooda la cadena para saber si es capicua, si te pongo el numero 1224 ya a la primera pregunta me da q no es capi entonces mejoraria el codigo q se valla moviendo mientras sean los numeros iguales, y cuando salis del ciclo preguntas si tu valor x == y y retornarias q es capi sino no
en codigo seria así:
--- Código: C ---in capicua(char*num) //1- Capicua y 0- No capicua{int largo=strlen(num),i=0,med=largo/2; while(num[largo]==num[i]&&i<med) {i++; largo--; } return num[largo]==num[i];}
espero q te alla aclarado tu problema y si no enteden algo pregunta
Navegación
Ir a la versión completa