#include float somme(float v1, float v2){ return v1+v2; } float soustraction(float v1, float v2){ return v1-v2; } float produit(float v1, float v2){ return v1*v2; } float division(float v1, float v2){ if(v2 != 0){ return v1/v2; } return -404; } int chiffre(char ch){ if ((ch >= '0') && (ch <= '9')){ return 1; }else{ return 0; } } int estOperateur(char c){ if( c == '+' || c == '-' || c == '*' ){ return 1; } return 0; } void lireCar( char * car){ *car = ' '; while( *car == ' ' || *car == '\n'){ scanf("%c",car); } } int estEgal(char c){ if( c == '='){ return 1; } return 0; } float faireCalc ( float a, char signe, float b){ if(signe == '*'){ return produit(a,b); } else if(signe == '-'){ return soustraction(a,b); } else if(signe == '+'){ return somme(a,b); } return -1; } int main(){ char c, signe, v2; float f1=0, f2=0; int cpt = 0; lireCar(&c); while(chiffre(c)!=1){ lireCar(&c); } f1 = c - '0'; printf("%f\n\n",f1); lireCar(&c); while(estEgal(c)!=1){ cpt++; if(estOperateur(c)){ signe = c; } else if (chiffre(c)){ v2 = c; f2 = v2 - '0'; } if( cpt % 2 == 1 && cpt !=1){ f1 = faireCalc(f1,signe,f2); printf("f1:%f signe: %c f2: %f = %f\n",f1,signe,f2, faireCalc(f1,signe,f2)); } lireCar (&c); /* while(estOperateur(signe)!=1 ){ lireCar(&signe); } lireCar(&v2); while(chiffre(v2)!=1){ lireCar(&v2); } f2 = v2 - '0'; f1 = faireCalc(f1,signe,f2); printf("%f %c %f = %f",f1,signe,f2, faireCalc(f1,signe,f2));*/ } return 0; }