【数据结构与算法分析】1.3 用printOut函数输出任意实数
来源:互联网 发布:华为总是停用移动数据 编辑:程序博客网 时间:2024/05/17 08:55
问题描述:
利用打印无符号整数的printOut函数打印任意实数
解决思路:
就是把整数和小数部分拆分打印,这里有好多坑
一是浮点数在计算机中存取的时候是不准确的
二是浮点强转整数采取的“舍去法”
三是你要考虑小数前几位是0和输入的就是一个小数的情况
四是下面的代码是不完整准确的
算法实现:
#include<stdio.h>void printOut(unsigned int intPart);void printRealNum(double n,int decimal);double n;int deciCount;int main() { while(scanf("%lf",&n)!=EOF){ scanf("%d",&deciCount); printRealNum(n,deciCount); }}void printOut(unsigned int intPart) { if(intPart>=10) printOut(intPart/10); printf("%d",intPart%10);}void printRealNum(double n,int deciCount) { if(n<0){ printf("-"); n=-n; } int intPart = 0; if(n>=1){ intPart = n; printOut(intPart);//输入数据如果就是小数,强制转化就直接成0了 } double decimal = n-intPart; int i,zeroCount = 0; for(i=0;i<deciCount;i++){ decimal*=10; if(decimal < 1) zeroCount++;//左起小数是0的情况 } if(decimal != 0){ printf("."); if(zeroCount) while(zeroCount){ printf("0"); zeroCount--; } intPart = decimal; printOut(intPart); }else{ printf("0"); }}
0 0
- 【数据结构与算法分析】1.3 用printOut函数输出任意实数
- 【数据结构与算法分析】1.4 用printOut函数输出任意实数
- 只使用处理IO的printDigit函数,编写一个过程以输出任意实数可以为负(java数据结构与算法习题1.3)
- 输出任意实数PrintDigit
- 5.1 从键盘任意输入一个实数,不使用计算绝对值函数编程计算并输出该实数的绝对值
- 5.1,从键盘任意输入一个实数,不使用计算绝对值函数编程计算并输出该实数的绝对值。
- 只使用I/O的PrintDigit函数,编写一个过程以输出任意实数
- 只使用处理IO的printDigit函数,编写一个过程以输出任意实数
- 只使用处理I/O的PrintDigit函数,编写一个过程以输出任意实数
- 只使用I/O的输入单数字的函数,实现任意实数的输出
- 只使用处理I/O的PrintDigit函数,编写一个过程以输出任意实数
- 实数集与函数
- 5.1从键盘上任意输入一个实数,不使用计算绝对值函数编程计算并输出该实数的绝对值
- 从键盘任意输入一个数,不使用计算绝对值函数编程计算并输出该实数的绝对值
- PrintOut
- 数据结构算法与分析
- 数据结构与算法分析
- 数据结构与算法分析
- CentOS 6.5系统中iptables防火墙开放端口80 3306 22端口
- UVA 10622 Perfect P-th Powers (唯一分解定理 + GCD)
- java_笔记-10
- 添加到UIView上的UIButton点击没反应 UITest时源文件找不到解决方案
- 排序之Java的Sort函数
- 【数据结构与算法分析】1.3 用printOut函数输出任意实数
- 什么是版本控制系统(VCS)?
- MySQL5.6 Using a password on the command line interface can be insecure解决方法;
- JS高级
- 软件测试面试题
- const的用法,特别是用在函数后面
- 论java类中的构造方法
- 使用Adapter提供的convertView优化Listview
- 软件测试的对象