1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<locale.h>
void main()
{
char tabc[4];
float tabi[4];
int i,j,k;
char expression[20];
printf("Programme-TP3 LAMOUROUX Damien (C) 3iL-A1\n");
printf("-----------------------------------------\n\n");
printf("Exemple: (4.5 + (-5 * 9.2))\n");
printf("Entrez votre expression completement parenthesee:");
scanf("%s",&expression);
fflush(stdin);
i=0;
j=0;
k=0;
//-----------------------Parcours de la chaine et génération des piles-----------------
do
{
do
{
if((expression[i]=='0')||(expression[i]=='1')||(expression[i]=='2')||(expression[i]=='3')||(expression[i]=='4')||(expression[i]=='5')||(expression[i]=='6')||(expression[i]=='7')||(expression[i]=='8')||(expression[i]=='9'))
{
tabi[j]=(expression[i]-'0');
j++;
}
else if(expression[i]=='+')
{
tabc[k]=expression[i];
k++;
}
else if(expression[i]=='-')
{
tabc[k]=expression[i];
k++;
}
else if(expression[i]=='*')
{
tabc[k]=expression[i];
k++;
}
else if(expression[i]=='/')
{
tabc[k]=expression[i];
k++;
}
i++;
}while(expression[i]!=')');
//-------------------------------Calcul----------------------------------------
if(tabc[i-1]='+')
{
tabi[i-2]=tabi[i-2]+tabi[i-1];
k=k-1;;
j=j-2;
}
else if(tabc[i-1]='-')
{
tabi[i-2]=tabi[i-2]-tabi[i-1];
k=k-1;;
j=j-2;
}
else if(tabc[i-1]='*')
{
tabi[i-2]=tabi[i-2]*tabi[i-1];
k=k-1;;
j=j-2;
}
else if(tabc[i-1]='/')
{
tabi[i-2]=tabi[i-2]/tabi[i-1];
k=k-1;;
j=j-2;
}
printf("%f\n",tabi[j]);
}while(expression[i]!='\0');
//---------------------------------Affichage du résultat--------------------------
printf("Le resultat est:%f",tabi[j]);
} |
Partager