0

基数を 10 基から変換しようとしています。同じ底の2つの数値を掛けた後、関数は再帰的でなければなりません。

    double convert(int number,int base)
{
    int digit = 1;
    double sum=0;
    int i=0;
    int figure;
    double end;
    if(base==10)
        return number;

    else
    {
        figure = (digit % (digit * 10) - number % digit) / digit;
        end=pow(base,i);
        sum+=figure*end;
        ++i;
        digit *= 10;

        convert(figure,base);

    }
return sum;
}

しかし、私は他に混乱しています、それはうまくいきません。どうすれば修正できますか?オファーはありますか?ありがとう..

4

2 に答える 2

3

例えば

#include <stdio.h>

int convert(int number,int base){
    if(number == 0 || base==10)
        return number;

    return (number % base) + 10*convert(number / base, base);
}

int main () {
    int i;
    for(i=2;i<=10;++i)
        printf("%d is %d base(%d)\n", 100, convert(100, i), i);
    return 0;
}
于 2012-04-30T08:59:54.853 に答える