幼稚園時代「何組」でしたか?

C++で10進数を2進数に変換するプログラムを
順番通りに表示できるようにする
っていうのを配列を使って作るんですが
下はあまり関係ないですが、こんな感じのが参考になるかなと思ったんですが、どうすればいいんですか

#include <iostream>
using namespace std;

int main() {

int i,goukei=0;
int kokugo[5];
float heikin;

for(i=0;i<5;i++) {
cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n";
cin >> kokugo[i];
goukei = goukei + kokugo[i];
}

heikin = (float)goukei/5.0;
cout << "平均点は" << heikin << "点です\n";

for(i=0;i<5;i++) {
cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i];
cout << "点で、平均との差は" << heikin-(float)kokugo[i] << "です\n";
}

return 0;

}

A 回答 (4件)

たしか2進数で表示する方法は無かったと思いますので、計算で出してやる必要があると思います。

(もし、あったらごめんなさい)
10進数から2進数に変換する方法は知ってますか?
プログラム的な意味ではなく手で計算するほうです。
※参考URLに10進数→2進数の方法が載っているサイトを紹介しておきます。

intの場合は最初に32個分の配列を確保しておいて(全部0で初期化)
変換したい数を2で割ったあまりを順番に配列に入れていけばいいとおもいます。
 2進数[0] = 10進数%2
 10進数 /= 2
 2進数[1] = 10進数(これはすでに1回2で割られています)%2
 10進数 /= 2
 以下略・・・
変換したい数が1か0になるまで割ったあまりを入れていけば、配列の各要素には0か1が入ることになります。

参考URL:http://www.pursue.ne.jp/jouhousyo/sysad/sysad010 …
    • good
    • 0

これでよいのでは?



#include <iostream>
#include <bitset>
#include <limits>

int main()
{
 unsigned long value;
 std::cin >> value;
 std::bitset<std::numeric_limits<unsigned long>::digits> bs(value);
 std::cout << bs << std::endl;
}
    • good
    • 0

なんとなく、「私は英語が苦手で日本語しか話せないんです。

」を英訳したいんだけど
よくわからないので

「This is a pen.」

を発展させてなんとかできないですか?みたいに感じるのですが如何でしょうか?


例題が宿題であるなら同級生(?)にそもそもCってどー書くの?と教えてもらいましょう。
#あまりにも質問がテキトーで回答しても意味がないような気がしてならないです。


とりあえず、プログラムの流れぐらいは自分で検討しましょう。
    • good
    • 0

示されたルーチンは10進数→2進数とは全く関係ありませんね。


10進数を2進数に変えるルーチンは
当該数が偶数なら0、奇数なら1が最下位の桁で、その数を2で割った商を同じ判定で0か1にするとこれがその上の桁になります。これを商がゼロになるまで繰り返すのです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!