-2

我正在处理一个作业问题,要求我们用 C 语言编写一个函数,将十进制转换为八进制。这是我到目前为止所拥有的

int oct(int num) {
    if (num < 8) {
        return num;
    }
    else {

    }
}

所以是的,我很困惑,非常感谢任何帮助谢谢

4

5 回答 5

5

您可以使用 %o 打印八进制数

检查此链接 http://ideone.com/OLXEL7

printf("%o\n", x); 

希望这可以帮助

于 2013-01-31T06:04:34.300 回答
1

十进制转八进制?超级简单,stdlib 中有两个函数。

void dec2oct(char *dst, const char *src, size_t dstsz)
{
    int n = strtoll(src, NULL, 10); // treat "src" as base-10
    snprintf(dst, dstsz, "%o", n); // and write it to "dst" as base-8
}

像这样称呼它:

char buf[32];
dec2oct(buf, "133742", sizeof(buf));
于 2013-01-31T06:03:59.153 回答
0

由于您的函数必须返回一个整数,因此您必须像十进制数一样构建八进制数。

做长除以 8 来计算数字。网上有无数用 C 语言进行长除法的例子。

然后对于每个数字,将其乘以 10 并添加到您的运行计数中。然后它将是十进制装扮成八进制......或者是相反的方式......

于 2013-01-31T06:01:13.977 回答
0

请参阅以下程序

我希望这会有所帮助。

于 2013-01-31T06:03:56.893 回答
0
void print_oct(int num)
{
    if (num != 0) {
        print_oct(num / 8);
        printf("%d", num % 8);
    }
}
于 2013-01-31T06:08:12.103 回答