C/C++の宿題を片付けます 83代目
■ このスレッドは過去ログ倉庫に格納されています
0575デフォルトの名無しさん
2007/02/22(木) 19:31:21ほい。
#include<stdio.h>
#include<stdlib.h>
char buf[100],*src=buf;
double atm(void);
double mul(double r){return*src=='*'?++src,mul(r*atm()):*src=='/'?++src,mul(r/atm()):r;}
double add(double r){return*src=='+'?++src,add(r+mul(atm())):*src=='-'?++src,add(r-mul(atm())):r;}
double atm(void){
double r;
while(isspace(*src))++src;
if(*src == '(')++src,r = add(mul(atm())),++src;
else r = strtod(src,&src);
while(isspace(*src))++src;
return r;
}
int main(){gets(src);printf("%f\n",add(mul(atm())));}
■ このスレッドは過去ログ倉庫に格納されています