c语言之根据根据输入确定的整数n使得输出也要精确到小数n位
来源:互联网 发布:淘宝dsr计算器 编辑:程序博客网 时间:2024/06/10 03:55
之前我一直很纠结这个问题,就是比如说输入三个整数a,b,c,输出a/b的小数形式,c为精确的小数位数。这不能用%.4f这样的东西来表示,这样表示的是4位有效数字。曾经查过用%g好像有这个效果,的是美中不足的是用了%g的话会使得后面的0舍弃,我最初是将a/b得到的小数乘以10的c次方,在取整再除以10的c次方去掉尾部的0,的是这样做会使得如果得到的小数不够的话,比如1.0/2.0要是此时c=3,结果只能得到0.5,与所需要的结果还是有差距的。所以这个有的方法有缺陷。
有错误地代码:
#include<stdio.h>
int main()
{
int count = 0;
while (scanf("%d%d%d",&a,&b,&c) != EOF && (a != 0 || b != 0 || c!=0))
{
count++;
if (b == 0)
{
printf("Inf answer\n");
}
else
{
printf("%g\n", (floor((double(a) / double(b))*double(pow(10, c)))) / pow(10, c));
}
}
return 0;
}
后来看到printf有个巧妙的用法:
int a, b, c;
while (scanf("%d%d%d", &a, &b, &c) != EOF && (a != 0 || b != 0 || c != 0))
{
if (b!=0)
printf("%.*lf\n", c, (double)a / b);//printf("%*.*s\n", m, n, ch);
//前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。
//这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。
else
printf("Error Input\n");
}
- c语言之根据根据输入确定的整数n使得输出也要精确到小数n位
- 精确到小数n位
- java 输入一个整数n,根据n获取Fibonacci数列的第n个值
- 输入两个整数m和n,及另一个整数k,计算m/n,结果精确到小数点后k位。
- C语言double保留N位小数
- <C语言>如何一步一步根据简单的代码联想到更多的功能?(实现输入一个整数,输出比它小包括它本身的所有素数。)
- EditText输入数据精确到小数点后n位
- 我用C语言实现“ 输入一个整数n,并求该整数n的阶乘”
- 输入一个整数n, 计算1到n的和并以16进制输出
- C语言基础 根据输入值来确定数组大小
- C语言编程:求n的阶乘问题。输入一个正整数n,输出n!
- c语言:输入一个整数n,计算n!
- [Java]根据用户的意愿,输出前N位的质数
- 输入数字n,按顺序输出从1到最大的n位10进制数
- android 学习记录之EditText控制输入1位小数,N位小数输入
- 根据输入文件名确定输出文件名
- C语言基础 检查自己的编译器是否支持根据输入来确定数组的大小
- C语言_根据用户输入确定新建的数组大小
- J2EE全面介绍
- LeetCode OJ Sort List
- jar命令
- java 并发原子性与易变性 来自thinking in java4 21.3.3
- sort()
- c语言之根据根据输入确定的整数n使得输出也要精确到小数n位
- Eclipse中将web项目自动发布到Tomcat webapps下
- IOS开发的字体大小设置有几种方法
- 华为OJ:2199 判断输入字符串中的括号匹配
- NSArray常用方法
- Linux sed根据关键字所在行,然后删除其它关键字
- 用firebreath开发插件
- 如何得到自定义UITableViewCell中的按钮所在的cell的indexPath.row
- 跨浏览器插件框架FireBreath安装与使用之一——Windows下的插件