Hirdetés

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

  • Jester01
    veterán

    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");
    }
    }

    1) gets-t tilos használni
    2) teljesen fölösleges a két változat, a második jó (lesz*) mind a két esetben
    3) a math.h is fölösleges
    4) ha egyszer int main, akkor illene valamit visszaadni
    5) a fordító üzeneteit érdemes megszívlelni (és persze bekapcsolni őket)
    6) a kiírás végére illene soremelést tenni
    7) a "valamiért nem fut le" szánalmas hibaleírás
    8) a ciklusból ki lehet lépni ha már kiderült, hogy nem palindrom

    MOD: * úgy értem, ha a kingabo által fentebb jelzett hibát javítod

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