gpt4 book ai didi

c - 在没有 Printf 或任何函数的情况下在 C 中打印一个 int

转载 作者:太空狗 更新时间:2023-10-29 15:24:44 25 4
gpt4 key购买 nike

我有一个作业需要在不使用 printf、putchar 等的情况下在 C 中打印一个整数。不允许包含头文件。除了我写的任何东西,没有函数调用。我有一个函数 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;
}

关于c - 在没有 Printf 或任何函数的情况下在 C 中打印一个 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com