根据用户输入的值,调整printf的输出精度

68 篇文章 6 订阅

1、一般情况下,printf可以在格式符中指定小数点后保留几位,例如,输出1/3的结果,结果保留小数点后三位

#include<stdio.h>

int main(void)
{
   
    float a,b;
    
	printf("Please Enter the divisor and dividend:") ;   
    scanf("%f %f", &a, &b);
    
       printf("The Result is : %.3f\n",  (a/b));
      
    return 0;
}

编译运行该程序

2、特殊情况下,如果要求根据用户输入的值来确定结果的精度,则需要对printf进行特殊的处理,代码如下:

#include<stdio.h>

int main(void)
{
   
    float a,b;
    int c;
    
	printf("Please Enter the divisor,dividend and precision:") ;   
    scanf("%f %f %d", &a, &b, &c);
    
	printf("The Result is : %.*f\n",  c, (a/b));
      
    return 0;
}

 将例1中的[%.3f]更换为[%.*f],在输出时,[*]会被变量c替换,编译运行该程序。

结果一:

这个结果和上例中的结果一致。

结果二:

 

可以看到,输出结果的精度随着输入参数的改变而改变。

例子2中的printf 机制在处理不同精度的结果时有很大的用途,可以作为参考。

刘汝佳的《算法竞赛入门》的第二章的习题2-5《分数化小数(decimal)》中使用到了该特性,解题时可以参考以上例子。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WangLanguager

您的鼓励是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值