在 C 中打印 int,无需 Printf 或任何函数

2023-11-21

我有一个作业,需要在 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(使用前将#替换为@)

在 C 中打印 int,无需 Printf 或任何函数 的相关文章

随机推荐