这是我在按照本书学习 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;
}
该代码仅在假设所有操作数都是一位数字时被暗示。我如何为多个数字/浮点数隐含它?我应该采取什么方法来解决这个问题。
我没有教练可以咨询(自学和第 7 章),我被困在这几个小时。所以任何帮助都将不胜感激。
谢谢你
注意
有人提到了 atoi() ...但我正在寻找其他东西/手册