-2

私は、10 進数から 8 進数に変換する関数を C で書くように求める宿題の問題に取り組んでいます。これが私がこれまでに持っているものです

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

    }
}

ええ、私はかなり立ち往生しています。どんな助けも大歓迎ですありがとう

4

5 に答える 5

5

%o を使用して 8 進数を出力できます

このリンクをチェックしてください http://ideone.com/OLXEL7

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

お役に立てれば

于 2013-01-31T06:04:34.300 に答える
1

10進数から8進数?超簡単、stdlib の 2 つの関数。

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

関数は整数を返す必要があるため、10 進数であるかのように 8 進数を構築する必要があります。

桁数を計算するには、8 で割り算します。Web には、C の長除算の例が無数にあります。

次に、数字ごとに 10 を掛けて、ランニング カウントに追加します。それから、8進数に扮した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 に答える