
正文
c语言输出为什么是0.00,c语言输出结果一直都是0怎么办
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
...商(保留两位小数),为什么printf出来的结果是0.00呢?
1、因为您定义的是两个整数,而c语言中规定,整数除以整数的结果只能是整数,所以哪怕您输出格式写的是%f形式,结果也只是按照要求多输出小数位的0而已。若想得到您所要的效果,那么需要将两个数至少有一个设置为实数形式,这样才能得到正确结果。
2、编译器运行test.cpp文件,此时成功将除法保留2位整数输出。
3、输出语句printf中,s也括到里面去了。
4、可以使用printf函数的格式控制符中的0标志,将其放在宽度字段前面,表示使用0来填充输出结果。具体来说,可以将格式控制符修改为%02f,其中5表示输出总宽度为5个字符(包括小数点和小数部分),.2表示保留两位小数,而0表示使用0来填充输出结果。
相关问答
Q1: 我的c语言为什么总是输出0.00?
亲,这是你的C语言程序代码写错了。输出了错误的内容。如果你把需要完成的任务和你的代码粘贴到这里来,我可以帮助你分析错误所在。
数据类型不对,double 对应的的是 %lf,float 对应的才是%f.可以将scanf(%lf,&n),且输出部分全部改为%2lf 或者定义的时候使用 float n,P1,P2,P3,P4,P0;实测就是这个问题。
程序中的第五行循环条件写错了,正确的循环条件应该是s=100;因,所以导致1次循环也没有执行,所以就输出显示0.000000了。
从代码输出的z以及z的赋值语句 z=x*j*e/w+z;来讲,x是什么,j是什么,e是什么,w又是什么。很明显你的意图,j是正负,(!i%2)的时候j是-1,不改变j的值的话j一直会是-1。
原因是h未被赋值,去掉scanf里的逗号即可。当然,第二个逗号不删。
scanf这个语句表达double类型的数据不正确 double这个类型有一点特殊,在scanf和printf里面的表达方式是不一样的。在scanf里面需要用%lf表达,在printf里面需要用%f表达。
Q2: C语言,找个错,不管输入什么,输出都是0.00
亲,这是你的C语言程序代码写错了。输出了错误的内容。如果你把需要完成的任务和你的代码粘贴到这里来,我可以帮助你分析错误所在。
scanf(%f,&f);//double类型的输入不能使用%f进行输入,得用%lf才能正常得到a的值。
但是你从键盘输入的时候用的是%d,所以全读成了整数了。改成%f即可。
double这个类型有一点特殊,在scanf和printf里面的表达方式是不一样的。在scanf里面需要用%lf表达,在printf里面需要用%f表达。
数据类型不对,double 对应的的是 %lf,float 对应的才是%f.可以将scanf(%lf,&n),且输出部分全部改为%2lf 或者定义的时候使用 float n,P1,P2,P3,P4,P0;实测就是这个问题。
c语言输出为什么是0.00的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言输出结果一直都是0怎么办、c语言输出为什么是0.00的信息别忘了在本站进行查找喔。








