我正在处理一个家庭作业问题,要求我们在C中编写一个将从十进制转换为八进制的函数。这是我到目前为止所拥有的
int oct(int num) {
if (num < 8) {
return num;
}
else {
}
}
所以,我已经陷入困境,非常感谢任何帮助 感谢
答案 0 :(得分:5)
答案 1 :(得分: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));
答案 2 :(得分:0)
由于你的函数必须返回一个整数,你必须建立八进制数,好像它是一个十进制数。
长8除以计算出数字。网上有无数的例子用于C中的长期划分。
然后,对于每个数字,将其乘以10并添加到您的运行计数。然后它将十进制打扮成八进制...或者是相反的方式....
答案 3 :(得分:0)
请参阅以下 Program 。
我希望这可以提供帮助。
答案 4 :(得分:0)
void print_oct(int num)
{
if (num != 0) {
print_oct(num / 8);
printf("%d", num % 8);
}
}