c语言 编一个简单的计算器~

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:38:33
2. 简单的计算器程序
用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式
操作数1 运算符op 操作数2
计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。
本实验程序是在例4.8的基础上,增加如下要求:
(1) 如果要求程序能进行浮点数的算术运算,程序应该如何修改?如何比较实型变量data2和常数0是否相等?
(2) 如何要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空白符,那么程序如何修改?
(3) (选作题)如果要求连续做多次算术运算,每次运算结束后,程序都给出提示:
Do you want to continue(Y/N or y/n)?
用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。那么,程序如何修改?
【提示:利用%1s格式符输入用户回答,利用do-while语句实现反复运算直到用户键入N或n。】
#include<stdio.h>
main()
{
int data1,data2;
char op;
printf("please enter the expression:");
scanf("%d%c%d",&data1,&op,&data2);

switch(op)
{
case'+':
printf("%d+%d=%d\n",data1,data2,data1+data2);
break;
case'-':
printf("%d-%d=%d\n",data1,data2,data1-data2);
break;
case'*':
printf("%d*%d=%d\n",data1,data2,data1*

#include<stdio.h>
#include<ctype.h>
main(){
double data1,data2; //把他们设成double就可以做浮点运算了
char op;
do{
printf("please enter the expression:");
scanf("%lf %c %lf",&data1,&op,&data2); //在他们之间加空格就可以打无限空格了

switch(op){
case'+':printf("%.2lf+%.2lf=%.2lf\n",data1,data2,data1+data2);break;
case'-':printf("%.2lf-%.2lf=%.2lf\n",data1,data2,data1-data2);break;
case'*':printf("%.2lf*%.2lf=%.2lf\n",data1,data2,data1*data2);break;
case'/':if(!data2)printf("division by zsro!\n");
else printf("%.2lf/%.2lf=%.2lf\n",data1,data2,data1/data2);break;
default:printf("Unkown operator!\n");
}

printf("Do you want to continue(Y/N or y/n)");
fflush(stdin);//这是清掉之前的回车键用的
}while(toupper(getchar())=='Y');//你的