#include "stdio.h" #include "math.h" #include "string.h" void main() { void f(char s[],int sum,int i); char s[100]; int sum=0; gets(s); f(s,sum,0); printf("%d",sum); } void f(char s[],int sum,int i) //( + ( * 7 3 ) ( - 5 1 ) ) { if(s[i]==' ') i++; if(s[i]=='(') f(s,sum,i+1); if(s[i]=='+') //( + ( * 7 3 ) ( - 5 1 ) ) { for(;s[i]!=')';i++) { if(s[i]=='(') f(s,s[i+1],sum); if(s[i]<='9'&&s[i]>='0') { sum=s[i]-'0'; for(;s[i]!=')';i++) { if(s[i]<='9'&&s[i]>='0') { sum=sum+(s[i]-'0'); } } } if(s[i]==')') f(s,s[i+1],sum,i+1); } } if(s[i]=='-') //( + ( * 7 3 ) ( - 5 1 ) ) { for(;s[i]!=')';i++) { if(s[i]=='(') f(s,s[i+1],sum); if(s[i]<='9'&&s[i]>='0') { sum=s[i]-'0'; for(;s[i]!=')';i++) { if(s[i]<='9'&&s[i]>='0') { sum=sum-(s[i]-'0'); } } } if(s[i]==')') f(s,s[i+1],sum,i+1); } } if(s[i]=='*') //( + ( * 7 3 ) ( - 5 1 ) ) { for(;s[i]!=')';i++) { if(s[i]=='(') f(s,s[i+1],sum); if(s[i]<='9'&&s[i]>='0') { sum=s[i]-'0'; for(;s[i]!=')';i++) { if(s[i]<='9'&&s[i]>='0') { sum=sum*(s[i]-'0'); } } } if(s[i]==')') f(s,s[i+1],sum,i+1); } } if(s[i]=='/') //( + ( * 7 3 ) ( - 5 1 ) ) { for(;s[i]!=')';i++) { if(s[i]=='(') f(s,s[i+1],sum); if(s[i]<='9'&&s[i]>='0') { sum=s[i]-'0'; for(;s[i]!=')';i++) { if(s[i]<='9'&&s[i]>='0') { sum=sum/(s[i]-'0'); } } } if(s[i]==')') f(s,s[i+1],sum,i+1); } } } /* Main.c:5:6: warning: return type of 'main' is not 'int' [-Wmain] void main() ^ Main.c: In function 'main': Main.c:10:2: warning: 'gets' is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations] gets(s); ^ Main.c: In function 'f': Main.c:42:5: error: too many arguments to function 'f' f(s,s[i+1],sum,i+1); ^ Main.c:16:6: note: declared here void f(char s[],int sum,int i) //( + ( * 7 3 ) ( - 5 1 ) ) ^ Main.c:63:5: error: too many arguments to function 'f' f(s,s[i+1],sum,i+1); ^ Main.c:16:6: note: declared here void f(char s[],int sum,int i) //( + ( * 7 3 ) ( - 5 1 ) ) ^ Main.c:84:5: error: too many arguments to function 'f' f(s,s[i+1],sum,i+1); ^ Main.c:16:6: note: declared here void f(char s[],int sum,int i) //( + ( * 7 3 ) ( - 5 1 ) ) ^ Main.c:105:5: error: too many arguments to function 'f' f(s,s[i+1],sum,i+1); ^ Main.c:16:6: note: declared here void f(char s[],int sum,int i) //( + ( * 7 3 ) ( - 5 1 ) ) ^ */ |
Double click to view unformatted code.