Erreur calculatrice à base de switch

Résolu
leguerinos Messages postés 5 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 11 décembre 2006 - 8 août 2006 à 22:55
leguerinos Messages postés 5 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 11 décembre 2006 - 8 août 2006 à 23:21
Bonjour,

La compilation de mon code me renvoie deux erreurs dont je n'arrive pas a determiner la cause.
Pourriez-vous m'aider?

Merci d'avance.

///////////////////////////////////////////////////////////////////////////////////

#include <stdio.h>

int main()

{
   
float A1,A2,A0;
char operation;

A1=0;
A2=0;
A0=0;

    puts("Tapes ton opération a deux termes uniquement\n");
    scanf("%lf%c%lf", &A1, &operation, &A2);

    switch (operation)

        {
            case'+': A0 = A1 + A2;

                printf("%lf%c%lf=%lf", A1, operation, A2, A0);
                break;

            case'-': A0 = A1 - A2;
           
                printf("%lf%c%lf=%lf", A1, operation, A2, A0);
                break;
           
            case'*': A0 = A1 * A2;
               
                printf("%lf%c%lf=%lf", A1, operation, A2, A0);
                break;

            case'/': A0 = A1 / A2;
                printf("%lf%c%lf=%lf", A1, operation, A2, A0);
                break;
               
            default: puts"Erreur";

        }

    return 0;
}

//////////////////////////////////////////////////////////////////////////////////////////////////

Voila les erreurs retournées :

error C2143: syntax error : missing ';' before 'string'
warning C4550: expression evaluates to a function which is missing an argument list

3 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
8 août 2006 à 23:02
puts"Erreur";

puts est une fonction, faut mettre puts("Erreur");

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
leguerinos Messages postés 5 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 11 décembre 2006
8 août 2006 à 23:12
Mince encore une erreur de débutant (ou d'inatention d'ailleurs).

Par contre a présent le programme ne donne absolument le resultat voulu :

1+1 me renvoie par exemple

1.875000+0.000000=1.875000  ????

Je soupconne une erreur dans mes modificateurs ou dans mes types?
0
leguerinos Messages postés 5 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 11 décembre 2006
8 août 2006 à 23:21
Reflexion faite effectivement il faut que je declare mes variables de calcul A0 A1 et A2 en tant que long double et non float.

Merci vecchio56
0
Rejoignez-nous