请问这段c语言。四则运算的程序为什么不对呢?
4个回答
推荐于2016-10-17 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
向TA提问 私信TA
知道合伙人教育行家
采纳数:17564
获赞数:65162
爱电脑、爱数学、爱音乐; 熟悉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;
}
以下是截图
展开全部
if(fu=42)请把=改为==,后面还有一处if(fu=47)照改
否则,这两条if分支必执行,最后返回的msg必然是a/b的值
另外,从scanf("%d,%d,%c",&a,&b,&fu);可以得出,输入的时候必须用逗号分隔
如计算5-2的值必须输入
5,2,-
当然还有除法没有小数以及除数为0的问题,这个程序没有解决
否则,这两条if分支必执行,最后返回的msg必然是a/b的值
另外,从scanf("%d,%d,%c",&a,&b,&fu);可以得出,输入的时候必须用逗号分隔
如计算5-2的值必须输入
5,2,-
当然还有除法没有小数以及除数为0的问题,这个程序没有解决
追问
你逗我么。不会就不要回答!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a, b;
char fu;
printf("...");
scanf("%d,%d,%c", &a, &b, &fu);
char fu;
printf("...");
scanf("%d,%d,%c", &a, &b, &fu);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么错误,能否详细说明
追问
语法没问题。但是不输出任何值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询