求大神解答C语言问题,要原创的,万分感谢!!
设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1运算符op操作数2计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。功能要求:(...
设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:
操作数1 运算符op 操作数2
计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。
功能要求:
(1)程序能进行浮点数的算术运算。除法要对分母为0的情况给出警告及避免。
(2)要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空白符。
(3)要求可以连续做多次算术运算,每次运算结束后,程序都给出提示:
Do you want to continue(Y/N or y/n)?
用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。
[提示:可利用空格加%c(或者%1s)格式符输入用户回答,可利用do-while语句实现反复运算直到用户输入N或n。] 展开
操作数1 运算符op 操作数2
计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。
功能要求:
(1)程序能进行浮点数的算术运算。除法要对分母为0的情况给出警告及避免。
(2)要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空白符。
(3)要求可以连续做多次算术运算,每次运算结束后,程序都给出提示:
Do you want to continue(Y/N or y/n)?
用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。
[提示:可利用空格加%c(或者%1s)格式符输入用户回答,可利用do-while语句实现反复运算直到用户输入N或n。] 展开
2个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
int main()
{
float a,b;
int yunsuanfu;
printf("请输入要计算的2个操作数:\n");
scanf("%f",&a);
scanf("%f",&b);
printf("运算的类型有:\n");
printf("\t\t1+\n");
printf("\t\t2-\n");
printf("\t\t3*\n");
printf("\t\t4/\n");
printf("请输出你要的运算类型:\n");
scanf("%d",&yunsuanfu);
float c1=a+b;
float c2=a-b;
float c3=a*b;
float c4=a/b;
for(int i=0;i<40;i++)
printf("-");
printf("/n");
switch(yunsuanfu)
{
case 1: printf("%f\n",c1); break;
case 2: printf("%f\n",c2); break;
case 3: printf("%f\n",c3); break;
case 4:
if (b==0)
printf("除数不能为0\n");
else printf("%f\n",c4); break;
}
return 0;
#include<stdlib.h>
int main()
{
float a,b;
int yunsuanfu;
printf("请输入要计算的2个操作数:\n");
scanf("%f",&a);
scanf("%f",&b);
printf("运算的类型有:\n");
printf("\t\t1+\n");
printf("\t\t2-\n");
printf("\t\t3*\n");
printf("\t\t4/\n");
printf("请输出你要的运算类型:\n");
scanf("%d",&yunsuanfu);
float c1=a+b;
float c2=a-b;
float c3=a*b;
float c4=a/b;
for(int i=0;i<40;i++)
printf("-");
printf("/n");
switch(yunsuanfu)
{
case 1: printf("%f\n",c1); break;
case 2: printf("%f\n",c2); break;
case 3: printf("%f\n",c3); break;
case 4:
if (b==0)
printf("除数不能为0\n");
else printf("%f\n",c4); break;
}
return 0;
更多追问追答
追问
大神,能讲一下这题的思路么?
追答
定义 a,b为浮点数方便运算,定义整形变量yunsuanfu,也就是运算符,方便switch的表达式的判断,这样实现了运算的2数和运算符,然后浮点变量定义c1,c2,c3,c4为加减乘除运算法则,
当输入了&a,&b,&yunsuanf后。我们来看switch,当yunsuanf=1,case1就直接输出了加法法则,依次类推,当case为4的时候,首先判断除数是否为0,也就是操作数2,如果为0则退出,如果不是则运算除法法则
展开全部
#include <stdio.h>
#include <ctype.h>
int main()
{
double operand1,operand2;
char op,ch='n';
scanf("%lf",&operand1);
do{
for(op=getchar();isspace(op);op=getchar())
;
scanf("%lf",&operand2);
switch(op){
case '+':operand1+=operand2;break;
case '-':operand1-=operand2;break;
case '*':operand1*=operand2;break;
case '/':while(!operand2){
printf("error:attemped to devide by zero,please input again");
scanf("%lf",&operand2);
}
operand1/=operand2;break;
}
printf("%lf\n",operand1);
printf("Do you want to continue(Y/N or y/n)?\n");
for(ch=getchar();isspace(ch);ch=getchar())
;
}while(!(ch-'Y')&&!(ch-'y'));
return 0;
}
#include <ctype.h>
int main()
{
double operand1,operand2;
char op,ch='n';
scanf("%lf",&operand1);
do{
for(op=getchar();isspace(op);op=getchar())
;
scanf("%lf",&operand2);
switch(op){
case '+':operand1+=operand2;break;
case '-':operand1-=operand2;break;
case '*':operand1*=operand2;break;
case '/':while(!operand2){
printf("error:attemped to devide by zero,please input again");
scanf("%lf",&operand2);
}
operand1/=operand2;break;
}
printf("%lf\n",operand1);
printf("Do you want to continue(Y/N or y/n)?\n");
for(ch=getchar();isspace(ch);ch=getchar())
;
}while(!(ch-'Y')&&!(ch-'y'));
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询