c语言求余数的问题

intmain(){inta=40,b=9;printf("shang=%.2f\nyu=%d\n",a/b,a%b);return0;}为什么执行出来结果是shang=... int main()
{
int a=40,b=9;

printf("shang=%.2f\nyu=%d\n",a/b,a%b);
return 0;
}
为什么执行出来结果是shang=0.00,yu=134513657
要说商是错的正常,没有类型转换,但是余数不该错的呀,奇怪...
答一楼,没有报错。答二楼,我知道要类型转换,但是余数本就该是整型的呀,而且输出是yu=%d,没错吧?但是执行结果不对,今天我做其他题目的时候也遇上这种问题了。请高手解答下,谢过先了!
展开
 我来答
乐跑小子
2016-01-14 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:7%
帮助的人:4492万
展开全部
1、C语言中,%符号就是取余数运算,也就是模运算(mod)。
Mod的含义为求余。模运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法。

2、设a,b是两个整数,a%b的结果就就是a÷b得到的余数
例如:5%3=2 (商1余2) 9%4=1 (商2余1) 3%7=3 (商0余3)
08vino
推荐于2017-11-27 · TA获得超过536个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:0
展开全部
楼主
你的a,b 都定义成整型int了,所以a/b的值是整型的,你的Printf语句用%.2f就不对了,解决方法如楼上的,或者如下
printf("shang=%.2f\nyu=%d\n",(float)a/b,a%b);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangsisi5244
2009-05-10 · 超过14用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:40.4万
展开全部
#include <stdio.h>
int main()
{
int a=40,b=9;
double quotient = a/b;
int remainder = a%b;

printf("shang=%.2f\nyu=%d\n",quotient,remainder);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洪婧蕾Gn
2009-05-09 · TA获得超过135个赞
知道答主
回答量:95
采纳率:0%
帮助的人:34.6万
展开全部
你把"shang=%.2f"中"%.2f"改为"%d"就能运行成功,我亲自测试过。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友73cfffe81
2009-05-09 · TA获得超过300个赞
知道小有建树答主
回答量:338
采纳率:0%
帮助的人:398万
展开全部
你把那个a/b改成a*1.0/b就好了 要不然无法输出的,vc6会报运行时错误,连结果都看不到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
runtoaim
2009-05-09
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
08vino 回答的正确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慎小晨S5
2019-11-08 · TA获得超过3709个赞
知道大有可为答主
回答量:3052
采纳率:25%
帮助的人:146万
展开全部
C语言里对于有一些符号是不能直接输出的,因为被C语言占用了。所以有一些符号是需要特殊的方式才能输出的。比如你说的%号,%号在C语言里是求余数的符号,如果需要输出%的话,你需要连续写2个%才能输出。如:printf("x%%y=%f\n",e);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式