c语言除法算不出,C语言实现简单计算器,无错误,无警告,除法,求余结果不对。求大神详解。...

C语言实现简单计算器,无错误,无警告,除法,求余结果不对。求大神详解。

答案:3  信息版本:手机版

解决时间 2020-07-08 20:31

已解决

2020-07-08 02:37

n"printf(",&data1;

char op;%d%c%d=%d\);n&quot.h>

if ((data2=0)&&((op==',data2;,a);%d%c%d=%d\,op;

case '#include&lt,data1;*')||(op=='break;/n"printf("%'

scanf(&quot,a):b=data1*1;%d%c%d=%;%d %c %d";

printf(":a=data1%data2;

}

}

return 0;);printf(")))

{

printf(";break;;%d%c%d=%d\: ";

printf(&quot:a=data1*data2:\,op:a=data1+data2;+'."Please input data1 op data2;Error;

case ',data2;);stdio,data2;

case '! chu shu wei 0,data1;n"

}

else

{

switch(op)

{

case 'break;Output;break,op;

int main()

{

int data1,data2;printf(&quot,a);

case '%'n&quot,data2,a;

double b;*',data1,data1;,data2.2f\;n"',op,a),&op;;%d%c%d=%d\,b),data1.0/;printf(&quot,op;-':a=data1-data2;data2,&data2)

最佳答案

2020-07-08 03:45

*&quot,即直接将data2的值赋值为0, 判断的前半部分应该是 data2==0;/.0/n"';&quot,double的格式符是lf;',data2;*':

case '?貌似是想判断&quot, data2=0是赋值;)||(op=='%')) 就成了

然后最后除法输出的也应该不对哈;)))

这行错了;/: if((data2==0) && (op==' || op=='if ((data2=0)&&((op==',data1;/不用判断乘数为0吧;data2;?

所以改成;的,不管输入的data2是什么

后半部分的&quot,op,b);/:b=data1*1;%d%c%d=%;'printf(&quot.2lf\

全部回答

1楼

2020-07-08 05:19

逻辑连接词,&& 和 ||

这两连接词常常会违反‘直觉’;按通常的直觉考虑,很肯能会存在错误;特别是||

按定义,||只要两边的任何一个成立表达式就成立;

注意

||前面成立,后面的表达式就不再计算了

&&前面的不成立,后面的表达式就不再计算了

验证,

int i=1;

if(i||(i=i+2))

printf("%d",i);

再看看别人怎么说的。

2楼

2020-07-08 03:56

&nbsp。\n&quot: 34>/ printf("

while(scanf("'0) ;{

int %d%c%d&nbsp,data2,data1 :&nbsp,op;/'

else

printf("除0错误;

default

case&nbsp。\n"break;printf("%d%c%d"break,data1;: == '.600000请输入算式,data1;printf("op;%d%c%d printf("除0错误: );printf(";stdio;op;data2) &nbsp,data2;;

case

}

return

case break;);data1;printf(&quot,&0) %d\n"+'&nbsp: 3) "%lf\n"23

>*&nbsp: %d%c%d&nbsp.000000

请输入算式,&%d\n"- data2); ;= : =&nbsp:不能识别的运算符;

case %

else == break;== %d\n"printf(");%d%c%d printf(&quot,data1

char

}

printf(";if(data2 ,data1: q

Press any key to continue

*/

#include&lt,data1,data2,data1;'/*

请输入算式;请输入算式;',data2;{

switch(op)&nbsp,op;= 请输入算式;%c;main() ; + break:if(data2 %';data2),data1&nbsp,op),op:不能识别的运算符;data2),&;*'%d\n"。\n&quot,data1 = %d%c%d data1;),(double)data1&nbsp.h>data2),data2,op,op;0;break: 36%4

36%4 = 0

请输入算式;'data2);{

case -'。

请输入算式;=&nbsp,data2: 45/9

45/9 = 5;

int&nbsp: 23/5

23/5 = 4;;&quot

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值