これは、この本に従って c でプログラミングを学習しているときに遭遇した問題です。
Enter an expression : 1+2.5*3
Output: 10.5
これが私がこれまでに思いついたものです。 編集
#include<stdio.h>
int main (void)
{
char c;
float f1=0.0f,f2=0.0f;
c = getchar();
while(c != '\n')
{
if(c!='+' && c!='-' && c!='*' && c!='/')
{
if (f1 == 0.0f)
{
f1 = c - '0';
c = getchar();
}
else
{
f2 = c - '0';
c = getchar();
}
}
switch (c)
{
case '+': c = getchar(); f2 = c - '0' ; f1 = f1+f2; break;
case '-': c = getchar(); f2 = c - '0' ; f1 = f1-f2; break;
case '*': c = getchar(); f2 = c - '0' ; f1 = f1*f2; break;
case '/': c = getchar(); f2 = c - '0' ; f1 = f1/f2; break;
// case '.':
default: break;
}
c = getchar();
}
printf("\n Value of the expression: %.2f", f1);
return 0;
}
コードは、すべてのオペランドが 1 桁の数字になることを前提としてのみ実装されています。複数の数字/浮動小数点数を実装するにはどうすればよいですか? この問題を解決するには、どのようなアプローチを取る必要がありますか。
私には相談できるインストラクターがいません(自己学習と第7章で)、これで何時間も立ち往生しています。
ありがとうございました
注意
誰かがatoi()について言及しました...しかし、私は何か他の/マニュアルを探しています