Problème avec mon ou de la fonction if

Résolu/Fermé
CoDForlan Messages postés 44 Date d'inscription mercredi 17 juin 2020 Statut Membre Dernière intervention 21 juin 2023 - Modifié le 20 août 2020 à 10:55
CoDForlan Messages postés 44 Date d'inscription mercredi 17 juin 2020 Statut Membre Dernière intervention 21 juin 2023 - 21 août 2020 à 02:26
Bonjour, j'ai un problème avec mon ou de la fonction if



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

void test(void);

int main(int argc, char const* argv[]) {
start:;
    int numOfNum = 0;
    char entCalc[256] = { 0 };
    int result = 0;

    printf("                                   CALCULATORV2\n[POUR QUITER APPUIEZ SUR 'CTRL + C']\n        Veuillez respecter les sytaxes suivantes :\n - soit addition ou soustraction ou multiplication ou division\n - pas d'espace\n - Exemple de calcule (14-17)(19+24)(24*30)...\n\n");

    printf("Ecrivez un calcule : ");
    gets(entCalc);
    printf("Votre calcul fait %d charactere\n", strlen(entCalc));
    printf("Le calcule         : %s\n", entCalc);
    printf("Le resultat        : %d\n", result);

    for (int i = 0; i < strlen(entCalc); ++i) {
        if (entCalc[i] == 0 || entCalc[i] == 1 || entCalc[i] == 2 || entCalc[i] == 3 || entCalc[i] == 4 || entCalc[i] == 5 || entCalc[i] == 6 || entCalc[i] == 7 || entCalc[i] == 8 || entCalc[i] == 9) {
            printf("0\n");
        }
        else {
            printf("1\n");
        }
    }

    system("pause");
    system("cls");
    goto start;
    return 0;
}

void test(void) {
    printf("test");
}



quand je test il me met ça

Ecrivez un calcule : 13+17
Votre calcul fait 5 charactere
Le calcule : 13+17
Le resultat : 0
1
1
1
1
1
Appuyez sur une touche pour continuer...

alors qu'il devrai me rep ça nn ? :

Ecrivez un calcule : 13+17
Votre calcul fait 5 charactere
Le calcule : 13+17
Le resultat : 0
0
0
1
0
0
Appuyez sur une touche pour continuer...
```

1 réponse

Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 20 août 2020 à 10:43
Bonjour,

C'est normal, entCalc est une chaine de caractères et tu teste en comparant avec des nombres entiers

Par exemple, entCalc[0] est égal à '1' et non à 1, entCalc[2] est égal à '+', etc ...

Sinon, lorsque tu postes une code utilise les balises de code, ce sera plus clair:

https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Et sinon, c'est 'Ecrivez un calcul' et non pas 'Ecrivez un calcule' , et aussi 'Votre calcul fait 5

caractères' et non pas 'Votre calcul fait 5 charactere' :-)
0
CoDForlan Messages postés 44 Date d'inscription mercredi 17 juin 2020 Statut Membre Dernière intervention 21 juin 2023 1
21 août 2020 à 02:26
C'est bon j'arrive à faire mon if ( ... || ... ) correctement et j'ai enlevé les fautes de mon programme.
Merci ;)
0