仅使用putchar()在C中打印长整型

写一个C函数 打印(n) 这需要很长的整数 N 作为参数,并在控制台上打印。唯一允许的库函数是 putchar() ,没有其他功能像 itoa() printf() 是允许的。也不允许使用循环。

null

我们强烈建议尽量减少浏览器,并先自己尝试。

这是一个简单的问题。因为putchar()打印一个字符,所以我们需要为所有数字调用putchar()。递归总是可以用来代替迭代,所以使用递归我们可以逐个打印所有数字。现在的问题是 putchar() 打印字符,如何使用putchar()打印数字。我们需要将每个数字转换为相应的ASCII值,这可以通过使用ASCII值“0”来实现。下面是完整的C程序。

C

/* C program to print a long int number
using putchar() only*/
#include <stdio.h>
void print( long n)
{
// If number is smaller than 0, put a - sign
// and change number to positive
if (n < 0) {
putchar ( '-' );
n = -n;
}
// Remove the last digit and recur
if (n/10)
print(n/10);
// Print the last digit
putchar (n%10 + '0' );
}
// Driver program to test above function
int main()
{
long int n = 12045;
print(n);
return 0;
}


输出:

12045

需要注意的一点是putchar()和递归调用print(n/10)的顺序。由于数字应该从左向右打印,递归调用必须出现在putchar()之前(最右边的数字应该打印在末尾,所有其他数字必须打印在它之前)。

本文由 阿比拉蒂 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享