c语言printout函数,只使用处理I/O的PrintDigit函数,编写一个过程以输出任意实数...
數(shù)據(jù)結(jié)構(gòu)與算法分析——c語言描述 習(xí)題1.3
這道題把double的整數(shù)和小數(shù)分別提取出來。
注意double在內(nèi)存中的儲存是接近于輸入的數(shù)的,加一個0.xx5。
一開始小數(shù)部分不會處理,參考了別人的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;
}
總結(jié)
以上是生活随笔為你收集整理的c语言printout函数,只使用处理I/O的PrintDigit函数,编写一个过程以输出任意实数...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c 语言切换源码,C转换为pas - 源
- 下一篇: harmonyos2.0如何申请,华为鸿