Ajuda com operação logica em C

0 respostas
c
_Paiva

Estou fazendo um programa para verificar se determinadas palavras são Palíndromo. Porem estou com problemas na comparação logica que esta sempre me retornando falso. Minha primeira linguagem é Java e estou aprendendo C na faculdade.

Meu codigo:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


#define bool    short
#define true    1
#define false   0
#define equals(a, b) (((srtcmp(a, b) == 0 ) ? true : false))
#define NUMENTRADA 1000
#define TAMLINHA   1000


bool isFim (char* s){
    
    return (strlen(s) >= 3 && s[0] == 'F' && s[1] == 'I' && s[2] == 'M');

}


int isPalindromo(char* s){

    int meio = strlen(s)/2;
    int indc = strlen(s) - 1;

    int resp = 1;

    for (int i = 0 ; i < meio ; i++){

        resp = resp && (s[i] == s[indc]);
        indc--;

//        printf("VALOR  ======= >> %c \n", s[i]);


    }

//        printf("\n---------------------------\n");
//        printf("BOOL  ======= >> %d \n", resp);
//        printf("\n---------------------------\n");

    return resp;

}


int main (int argc, char** argv){

    char entrada [NUMENTRADA][TAMLINHA];
    int numEntrada = 0;

    do{

        fgets(entrada[numEntrada], TAMLINHA, stdin);

    } while (isFim(entrada[numEntrada++]) == false);

    numEntrada--;

    for (int i = 0; i < numEntrada ; i++){

        if(isPalindromo(entrada[i]) == true){

            printf("SIM\n");

        } else {

            printf("NAO\n");

        }

    }

}

A entrada de dados esta sendo feita por redirecionamento de entrada e saída. Exemplo do arquivo de entrada de dados:

aça
acaçá
Ada
afã
aia
ala
ama
Ana
anilina
ara
arara
asa
ata
aviva
ele
esse
mamam
mamam
matam
metem
oco
omissíssimo

Criado 10 de agosto de 2019
Respostas 0
Participantes 1