我有一个作业,需要在 C 中打印一个整数,而不使用 printf、putchar 等。不允许包含头文件。除了我写的任何内容之外,没有任何函数调用。我正在使用一个函数 my_char (可能是错误的),但它打印出一个字符。我目前有以下代码,它向后打印数字。不是在寻找答案。只是寻找一些方向,一些帮助,也许我的看法完全错误。
void my_int(int num)
{
unsigned int i;
unsigned int j;
char c;
if (num < 0)
{
my_char('-');
num = -num;
}
do
{
j = num % 10;
c = j + '0';
my_char(c);
num = num/10;
}while(num >0);
}
不是在循环中调用 my_char() ,而是将字符“打印”到缓冲区,然后反向循环缓冲区以将其打印出来。
事实证明你不能使用数组。在这种情况下,您可以通过循环计算出 10 的最大幂(即 log10)。然后用它从第一个数字开始向后计算。
unsigned int findMaxPowOf10(unsigned int num) {
unsigned int rval = 1;
while(num) {
rval *= 10;
num /= 10;
}
return rval;
}
unsigned int pow10 = findMaxPowOf10(num);
while(pow10) {
unsigned int digit = num / pow10;
my_char(digit + '0');
num -= digit * pow10;
pow10 /= 10;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)