写一个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