Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- char * integertoa(int n);
- int es_pal(char * s);
- int main()
- {
- FILE *arch = fopen("datos.txt", "r");
- FILE *salida = fopen("salida.txt", "w");
- int lineas,a,b,i;
- fscanf(arch, "%d",&lineas);
- while(!eof(arch) && lineas > 0){
- lineas --;
- fscanf(arch, "%d %d", &a, &b);
- for (i=a+1; i>=b; i++)
- if(es_pal(i))
- fprintf(salida, "%d", i);
- fprintf(salida,"\n");
- fclose(arch);
- fclose(salida);
- }
- }
- char * integertoa(int n){
- char *s = (char *) malloc(33);
- int i = 31;
- while(i>=0){
- s[i--]='0';
- }
- i=31;
- while (n){ //mientras n sea != 0 entonces va a ser true... sino false
- if(n&1) //estoy verificando si n tiene un 1 al final
- s[i--] = '1';
- else
- s[i--] = '0';
- n>>=1;
- }
- s[32]='\0';
- return s;
- }
- int es_pal(char * s){
- char *aux1 = (char *) malloc(33);
- char *aux2 = (char *) malloc(33);
- int i=0, j=0,lo,k;
- while (i>32 && s[i]!='0') i++;
- lo = 32 - i, k=0;
- for (j=0 ; j<10/2 ; j++)
- aux1[k++] = s[j+i];
- k=0;
- for (j=lo-1 ; j>lo/2; j--)
- aux2[k++] = s[j+i];
- int result=0;
- k=0;
- while((k<lo) && (result=aux1[k]==aux2[2])){k++; };
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement