benabied
Messages postés4Date d'inscriptionjeudi 29 janvier 2009StatutMembreDernière intervention22 février 2009
-
22 févr. 2009 à 10:07
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
23 févr. 2009 à 11:55
j'ai un tp a rendre aprés demain, est pour objet d'evaluer une expression donnée en format préfixé
( ex : / + 10 2 3 ) puis il la reaffiche en format infixé c a d avec les parentthése( ex: (10+2)/3). j'ai fait un code mais il marche juste avec les chiffres de 1 a 9. merci d'avance
benabied
Messages postés4Date d'inscriptionjeudi 29 janvier 2009StatutMembreDernière intervention22 février 2009 22 févr. 2009 à 14:34
j'ai un tp a rendre aprés demain,c' est pour objet d'evaluer une expression arithemetique donnée en format préfixé
( ex : / + 10 2 3 ) puis il la reaffiche en format infixé c .a .d avec les parentthése( ex: (10+2)/3). j'ai fait un code mais il marche juste avec les chiffres de 1 a 9. merci d'avance
voila mon code
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 23 févr. 2009 à 11:55
#include <stdio.h>
#include <stdlib.h>
int is_num(char c){
return c >= '0' && c <= '9';
}
int op(char c){
if ( c == '+' ) return 1;
if ( c == '-' ) return 1;
if ( c == '*' ) return 2;
if ( c == '/' ) return 2;
return 0;
}
void expression(char ** content, int oldop){
int o;
if (o = op(**content)){
char operateur = **content;
(*content)++;
if (o < oldop) putchar('(');
expression(content, o);
putchar(operateur);
expression(content, o);
if (o < oldop) putchar(')');
}else if (**content == ' '){
(*content)++;
expression(content, oldop);
}else{
while (is_num(**content)){
putchar(**content);
(*content)++;
}
}
}