|
> 例えば「125+5*20」と入力した時、「+」「*」の優先順位を考え、
> 計算してくれるプログラムをつくりたいのですが。
【掲示板ご利用上の注意】をよく読んで、ソースを添付してください。
インデントをつけるのが嫌なら、次のように書くしかないかな。
#include <stdio.h>
#define x(a, b, d, e, f) while (c==a?(v b f(),1):c==d?(v e f(),1):0)
char c;
double f(void) { double v; scanf("%lf%c", &v, &c); return v; }
double t(void) { double v = f(); x('*', *=, '/', /=, f); return v; }
double e(void) { double v = t(); x('+', +=, '-', -=, t); return v; }
int main(void) { printf(" %.16g\n", e()); return 0; }
|