Hirdetés

Új hozzászólás Aktív témák

  • kingabo
    őstag

    Sziasztok! Az alábbi program valamiért nem fut le, meg tudná mondani valaki, mi a hiba? (+építő kritikát is elfogadok, hogy mit használjak mi helyett stb.) Előre is köszi:

    #include <stdio.h>
    #include <string.h>
    #include <math.h>
    #include <stdbool.h>

    int main(){
    char string[20];
    char back[20];
    int i,len;
    bool rel;
    rel=true;
    printf("Add meg a szot! ");
    gets(string);
    len = strlen(string);
    if(len%2==0){
    for(i = 0; i<len/2; i++){
    if(string[i]!=string[len-i]){
    rel=false;
    }
    }
    }
    else{
    for(i = 0; i<(len+1)/2; i++){
    if(string[i]!=string[len-i]){
    rel=false;
    }
    }
    }

    if(rel==true){
    printf("palindrom");
    }
    else{
    printf("nem palindrom");
    }
    }

    Hali!

    Csak gyorsan átfutva az tűnt fel, hogy a string-ben az n+1-edik elemre hivatkozol. Pl van egy 5 hosszú stringed, akkor az indexek 0 és 4 között vannak a string[len-i] i=0 esetén viszont 5. Megoldás vonj le még 1-et az indexből, vagyis így nézzen ki string[len - i - 1].
    Hibakereséhez ajánlom a debugger használatát. ;)

Új hozzászólás Aktív témák