如何使用C语言做一个简单的计算器

请编写程序,模拟简单计算器的工作。假定简单计算器只能进行双目实型运算,运算的次序按输入的运算数和运算符的顺序进行,在输入时运算数和运算符之间用空格隔开,例如,输入 10.2 + 1.8 / 3 = 后结果得4.0。

就是这个了,多谢多谢

#include<stdio.h>

main()

{

float a[100];

int i,j;

char b[100];

while(1)

{

for(i=0;i<=99;i++)

{

scanf("%f%c",&a[i],&b[i]);

if(b[i]=='=') break;

}

for(j=0;j<=i;j++)

{

switch(b[j])

{

case '+':a[j+1]=a[j]+a[j+1];break;

case '-':a[j+1]=a[j]-a[j+1];break;

case '*':a[j+1]=a[j]*a[j+1];break;

case '/':a[j+1]=a[j]/a[j+1];break;

case '=':printf("%f\n",a[j]);

}

}

}

getch();

}

说明:输入格式为"10.2+1.8/3=",记住

最后一定要输入"=",再敲回车键,在

TC中运行要加"getch();"以显示结果。 

回复:我用的是VC++6.0,调试和运行都

无异常,是不是你最后忘记加等号了,

还是输入数字之后加了空格,为了输入

的方便,我没有设计加空格,直接输入

就可以了,比如输入“3+4-5/2=”,输

出“1.000000",如还有问题可加我。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-14
我试一下了 #include <stdio.h>
#include <iostream.h>
int main ( void )
{
double dNum1, dNum2;
char ch;
cout<<"Input like this: 1.2 + 3.4"<<endl;
cin>>dNum1>>ch>>dNum2;
switch(ch)
{
case '+':
cout<<dNum1<<ch<<dNum2<<"="<<dNum1+dNum2<<endl;
break;
case '-':
cout<<dNum1<<ch<<dNum2<<"="<<dNum1-dNum2<<endl;
break;
case 'x':
cout<<dNum1<<ch<<dNum2<<"="<<dNum1*dNum2<<endl;
break;
case '/':
cout<<dNum1<<ch<<dNum2<<"="<<dNum1/dNum2<<endl;
break;
default:
cout<<"error occured"<<endl;
break;
}
return 0;
} 该例中乘法用的是x,因为*有特别的含义
第2个回答  2013-10-14
#include <iostream>
using namespace std;
int main()
{
int a,b;
char c;
cin>>a;
cin>>c;
cin>>b;
switch(c)
{
case '+':printf("%d+%d=%d\n",a,b,a+b);break;
case '-':printf("%d-%d=%d\n",a,b,a-b);break;
case '*':printf("%d*%d=%d\n",a,b,a*b);break;
default:
if (c=='/')
if (a%b==0)
printf("%d/%d=%d\n",a,b,a/b);
else
printf("%d/%d=%d\n...%d",a,b,int(a/b),a%b);
else
printf("Error");
}
system("pause");
return 0;
}本回答被网友采纳
第3个回答  2013-10-14
编这个肯定不是一会儿的事,不过我建议你去csdn下一个,应该有你要的!
相似回答