
题目
解决代码及点评
/************************************************************************/ /* 88. 模拟计算器。 编写模拟计算器进行加、减、乘、除四则运算的程序(假设这四种运算的优先级都是相同的) 。如果在终端上敲入:8.5+0.5*2.5=后,程序应得结果22.5。 笨蛋方法*/ /************************************************************************/ #include<stdio.h> #include <stdlib.h> double getnum88(char *p) { double dNumber=atof(p); return dNumber; } void main() { char arr[100]; gets_s(arr); char *p=arr; double num; char temp[20]={0}; char *tempp=temp; while(*p!='\0') { if ((*p) >='0'&&*p<='9'||*p=='.') { *tempp=*p; p++; tempp++; } else break; } num=getnum88(temp); while(*p!='\0') { char temp1[20]={0}; char *tempp1=temp1; char c=*p++; if (c=='+') { while(*p!='\0') { if ((*p) >='0'&&*p<='9'||*p=='.') { *tempp1=*p; p++; tempp1++; } else break; } num+=getnum88(temp1); } else if (c=='-') { while(*p!='\0') { if ((*p) >='0'&&*p<='9'||*p=='.') { *tempp1=*p; p++; tempp1++; } else break; } num-=getnum88(temp1); } else if (c=='*') { while(*p!='\0') { if ((*p) >='0'&&*p<='9'||*p=='.') { *tempp1=*p; p++; tempp1++; } else break; } num*=getnum88(temp1); } else if (c=='/') { while(*p!='\0') { if ((*p) >='0'&&*p<='9'||*p=='.') { *tempp1=*p; p++; tempp1++; } else break; } num/=getnum88(temp1); } } printf("\n"); printf("%lf",num); system("pause"); }
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn