c语言printout函数,只使用处理I/O的PrintDigit函数,编写一个过程以输出任意实数...

本文详细介绍了如何使用C语言编写函数,将double类型的数值分解为整数部分和小数部分,包括处理负数和指定精度的情况,通过PrintInt和PrintOut函数展示算法过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构与算法分析——c语言描述 习题1.3

这道题把double的整数和小数分别提取出来。

注意double在内存中的储存是接近于输入的数的,加一个0.xx5。

一开始小数部分不会处理,参考了别人的zhengken1991代码

#include

#define PrintDigit( Ch ) ( putchar( ( Ch ) + '0' ) )

void PrintInt(unsigned int N) /* Print nonnegative N */

{

if (N >= 10)

PrintInt(N / 10);

PrintDigit(N % 10);

}

void PrintOut(double N,int accuracy)

{

if (N < 0){

putchar('-');

N = -N;

}

int n = (int)N;

PrintInt(n);

double decimal = N - n;

if (decimal > 0){

putchar('.');

double add = 0.5;

for (int i = 0; i < accuracy; i++) {

add /= 10;

}

N += add;

for (int i = 0; i < accuracy; i++){

decimal *= 10;

}

PrintInt(decimal);

}

}

int main()

{

PrintOut(1208.123456,3);

putchar('\n');

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值