至急!!!願います。基数変換のプログラムを作ってるんですが。わからないことがあります教えてください。

[戻る]
コウタロウ [E-Mail] 2002/09/26(木) 00:41:33
基数変換のプログラムを作ってるんですが、ある程度は出来たんですが、わからないとこがあり
ます。教えてください。作ろうとしている内容は、10進数を入力して、
それを2,8,16進数に変換します。ただし、¥xなど一発で変換できる命令は使用しては行
けない。というものなんですが、いちおう下の部分までは出来たんですが、どうもうまく行きま
せん。よろしければご指導願います。


#include<stdio.h>
void main(void)
{
    int in;
    int syo;
    int ama[8];
    int noko[8];
    int noku[8];
    int i=0;
    printf("10進数を入力=");
    scanf("%d",&in);
    syo=in;
    for(i=0;i<8;i++)
    {
        ama[i]=syo%16;
        syo=syo/16;
        
    }
    i=7;
    for(i;i>=0;i--)
    {
        if(ama[i]>=10)
        {
        ama[i]=ama[i]+55;
        printf("%c",ama[i]);
        }
        else
        {
            printf("%d",ama[i]);
        }
        

    }
    printf("\n");
    for(i=0;i<8;i++)
    {
        noko[i]=syo%8;
        syo=syo/8;
        
    }
    i=7;
    for(i;i>=0;i--)
    {
        printf("%d",noko[i]);
        

    }
    printf("\n");
    for(i=0;i<8;i++)
    {
        noku[i]=syo%2;
        syo=syo/2;
        
    }
    i=7;
    for(i;i>=0;i--)
    {
        printf("%d",noku[i]);
        
    }
    printf("\n");



}

すてふぁん 2002/09/26(木) 01:03:25
モロ学校の課題のようだね。

>どうもうまく行きません。よろしければご指導願います。
どこがどううまく動かないのか説明しないと、まともなレスは受けられないよ。

2002/09/26(木) 09:11:06
今日の宿題ですな・・・
時間的に手遅れかも・・

2002/09/26(木) 10:27:38
学校の課題らしきものに "至急!!!" とかつけられる神経がすごいよね。

こんなんでました 2002/09/26(木) 11:43:02
#include <iostream>
#include <bitset>
using namespace std;
void main()
{
    int i = 0;
    cout << "10進数を入力=";
    cin >> i;
    if( i == 0 )    return;

    bitset<8> b( i );
    cout << "16進数 = " << hex << i << endl;
    cout << " 8進数 = " << oct << i << endl;
    cout << " 2進数 = " << b << endl;
}

tib 2002/09/26(木) 12:31:48
>ただし、¥xなど一発で変換できる命令は使用しては行けない。
というルールらしいので、hexとかoctとかはこの場合は禁じ手ではないでしょうか。

wood 2002/09/26(木) 12:52:30
これ!プログラミングと言うより、さんすうの問題でしょ
さんすう(中学生くらいかな、へたすりゃ小学生)で
どう解釈すればよいか自分で考えれば、アルゴリズム簡単に組めるのでは?

YuO [E-Mail] 2002/09/26(木) 12:52:38
CRTの_itoaのソースがVC++にゃついているから,それをコピーしてしまえば?
たぶん,ちょっと突っ込まれたら終わりでしょうけど。

つるかめ 2002/09/26(木) 14:15:08
8進と2進の変換の前に
syo = in;
で、変換する前の値を入れなきゃ。

古いスレッドには追加発言できません。