请问这段c语言。四则运算的程序为什么不对呢?

 我来答
天雨下凡
推荐于2016-10-17 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65140
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部

这种写代码的方法真是无语!

有两个地方要注意:

一、输入数据时,中间要输入逗号,比如:1,2,43(输入的时候别人还要知道43代表加,也就是说还要查ASCII码)

二、执行除法时,结果不准,因为两个整数进行除法是进行的所谓“地板除”,只取整。

建议代码改成如下:

#include <stdio.h>

int main(void)

{

int a,b;

char fu;

printf("请输入运算式:");

scanf("%d%c%d",&a,&fu,&b);

switch(fu)

{

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;

case '/' :

printf("%d/%d=%.2f\n",a,b,(float) a/b);

break;

default :

printf("输入错误!\n");

break;

}

return 0;

}

以下是截图

你猜我猜哇擦猜
2015-11-24 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2万
采纳率:0%
帮助的人:6466万
展开全部
if(fu=42)请把=改为==,后面还有一处if(fu=47)照改
否则,这两条if分支必执行,最后返回的msg必然是a/b的值

另外,从scanf("%d,%d,%c",&a,&b,&fu);可以得出,输入的时候必须用逗号分隔
如计算5-2的值必须输入
5,2,-

当然还有除法没有小数以及除数为0的问题,这个程序没有解决
追问
你逗我么。不会就不要回答!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敖海夜
2015-11-24 · TA获得超过200个赞
知道小有建树答主
回答量:165
采纳率:100%
帮助的人:105万
展开全部
int a, b;
char fu;
printf("...");
scanf("%d,%d,%c", &a, &b, &fu);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
447587096
2015-11-24 · TA获得超过5043个赞
知道大有可为答主
回答量:2504
采纳率:70%
帮助的人:1134万
展开全部
什么错误,能否详细说明
追问
语法没问题。但是不输出任何值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式