printf(“ “, );格式化输出 占位符

如下例题,各位先试着编写一下呢
/*
从键盘读入4个数num1、num2、num3、num4,输出:(num1÷num2的余数)×num3+num4,不需考虑num2为0和计算结果溢
出的情况。要求输出的结果中,整数部分宽度为8(不足8时以0补足)、小数部分宽度为7。编程可用素材:printf(“请输入4个
数:”)、printf("\n计算结果为:…。
  程序的运行效果应类似地如图1和图2所示,图中的红色部分是从键盘输入的内容。
请输入4个数:100 30 100.1234567 25
计算结果为:0000 1026.2345 670
请输入4个数:22 12 100.12345678 1000000
计算结果为:01001001.2345678
*/
本来是一个很简单的题,但是我编写出来的代码总是出错,让我百思不得其解,以下是我遇到的问题及其解决方案:
1.Q:num3的数值精度不足,有数据丢失.
A:定义num3时用double,不要用float.
2.Q:num3的数值总是自己变成0(输出的结果为0或者特别离谱).
A:输入代码scanf(" “,& );的占位符需要注意, 既然定义num3时是用的double, 那么输入时的占位符就必须是%lf, 不过输出时就不用讲究了(%f, %lf都可以).
3. Q: 输出结果正确,但却无法达到题例所示的"整数部分宽度为8, 小数部分宽度为7”.
A:要达到题例所示的效果, printf(" ", );输出时不能单纯只用%f, 而要改为%016.7f, 016表示输出结果的宽度为16, 7表示小数部分宽度(小数点也占一个宽度).
对了,如果“%016.7f”中的“016”写的很小,输出的时候该是什么就是什么,不会被截断,但是“.7”小了, 就会只保留相应地小数位数.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值