Hirdetés

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

  • sghc_toma
    senior tag

    Segítsetek plz, miért ugorja át a műveletjel megadását/miért nem lesz a muvjelnek megfelelő értéke?

    #include <stdio.h>

    int main(){
    int szam, szam2;
    char muvjel;

    // Adatok beolvasása
    printf("Kerem az elso szamot: ");
    scanf("%d", &szam);

    printf("\n\nMuvelet: ");
    scanf("%c", &muvjel);

    printf("\n\nKerem a masodik szamot: ");
    scanf("%d", &szam2);

    //Tényleges műveletvégrehajtás
    if (muvjel=="+"){
    printf("%d %c %d = %d ", szam, muvjel, szam2, (szam+szam2));
    }
    else if (muvjel=="-"){
    printf("%d %c %d = %d ", szam, muvjel, szam2, (szam-szam2));
    }
    else if (muvjel=="*"){
    printf("%d %c %d = %d ", szam, muvjel, szam2, (szam*szam2));
    }
    else if (muvjel=="/"){
    printf("%d %c %d = %d ", szam, muvjel, szam2, (szam/szam2));
    }

    system("pause");
    }

    az elozo beolvasas utan ottmarad az stdin-en egy '\n', es ezt olvassa be a masodik scanf.. csinalhatod azt, hogy olvasas elott kiurited az stdin-t mondjuk igy:

    char c; while ((c = getc(stdin)) != EOF && c != '\n');

    ja, es az osszehasonlitasnal ne "-t hasznalj, hanem '-t.. a "+" igazabol ket karakter, a vegen van egy '\0'..

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