• 締切済み

c言語の初心者です

c言語の初心者です 2進数を入力して10進数を表示するプログラムを作りたいのですが まったくできません それなので2進数の入力のヒントだけでも教えてもらえないでしょうか?

みんなの回答

回答No.2

#include <stdio.h> int main(void) { char buf[1024]; int i; int num = 0; printf("2進数を入力してね => "); scanf("%s", buf); for (i = 0; buf[i] != '\0'; i++) { switch (buf[i]) { case '0': num <<= 1; break; case '1': num <<= 1; num |= 1; break; default: printf("変な文字「%c」があったよ\n", buf[i]); return(-1); } } printf("16進数は「%x」だよ\n", num); getchar(); return(0); } あっ、間違えて16進数を表示するプログラムを作ってしまいました。 10進数は難しいので頑張ってください。

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.1

>それなので2進数の入力のヒントだけでも教えてもらえないでしょうか? 文字列で入力するのがいいと思います。

関連するQ&A

  • C言語

    C言語初心者です。 整数を入力しその数が偶数ならプログラムを終了する。奇数ならそれが3の倍数か3の倍数でないかを表示する。入力した数が奇数ならこの操作を何回も繰り返すプログラムを作りたいです。 このプログラムのソースを教えてください。

  • C言語のプログラミングについてです><

    今C言語のプログラミングの勉強をしているのですが、わからないプログラムがでてきたので教えてくださる方がいらっしゃれば、ご教授願いたいです。 数当てゲームの作成 1~9(0は除く)のなかから4つの異なる数字をランダムで選択し、4桁の数をつくる。ユーザは4つの数字の並びを入力して、作られた数を当てる。 ユーザの入力した数と作られた数を比較して、同じ数字が同じ桁にある場合は"Hit"というヒントを与える。また、同じ数字が異なる桁にある場合は"Blow"というヒントを与える。すなわち、作られた数が5849で、ユーザが4829という数値を入力した場合、"2 Hit 1 Blow"というヒントが表示されるようにする。 ユーザは10回まで、入力するチャンスが与えられる。 といった感じのプログラミングなんですが、C言語初心者である自分にはまったくわかりません; ; どなたかわかる方がいらっしゃれば、助けていただけないでしょうか?よろしくお願いします!

  • C言語プログラム

    C言語プログラム ある数を入力して、入力された数を一辺とする図形を描くプログラムを作りたいんです。 分かりやすくすると、 入力された数が5だった時、画面には ***** ***** ***** ***** ***** ↑こう出力させたいんです。 四角だけじゃなくて、 * ** *** **** ***** ↑こういう三角とか、逆三角とか、 *        * **     *** ***  ***** **     *** *        * こんなかんじでいろんな形を描けるようにしたいんです。 C言語で、for文の二重ループを使うようにとのことなんですが、 どうすればいいでしょうか。 こういうのってズルですけど、何かヒントでも貰えればと思っています...。

  • C初心者に課題をください。

    現在学校でC言語の勉強をしています。 自分のC言語の実力は、基本情報のC言語がちょっと理解できるぐらいです。 しかも、Cを読むのは慣れていますが、あまり書いたことはありません。 そこで、C言語の実力向上を図って、自分に課題を出していろんなプログラムを作って行きたいのですが、さっそく何を作ればいいのかわかりません。 過去に自分がこんなプログラムを作ったとか、よい案がありましたら何でもいいので是非教えてください。 大体の機能と、あればヒントとか教えてくれる程度でいいです。 例) どんなプログラム?:電卓 機能:入力例(500*3)→表示(1500) 四則演算ができる。 続けて演算子と数値を入力すると表示結果と計算する。 よろしくお願いします。

  • C言語初心者ですが……

    C言語初心者ですが…… すみません。C言語を初めてやろうと考えています。それでいくつか分からない点があり、皆さんに相談した次第です。 まず初心者おなじみの「Hello,world!」を表示させるプログラムをつくってみました。 構文とか拡張子とかは完璧です。自信あります。 しかし、いざexeファイルを開いたところ、なぜかウインドウが一瞬で閉じてしまいました。そのため、本当に画面に「Hello,world!」が表示されているのかどうかとても心配です。 こういうとき、どうすればいいのでしょうか。もしよろしければ答えて頂けると幸いです。 ちなみに私はMicrosoft Visual C++ 2010 Expressとやらを使っています。

  • C言語の授業で

    C言語の授業で -------------------- 3以上の整数を入力してください:10 素数は以下の数です: 7 5 3 2 素数は4個ありました -------------------- という感じの、入力した数以下の素数を表示するプログラムをwhile文を用いて作成するように言われたんですが・・・。 まず、while文と素数を表示するプログラムがよくわからないので、もう何をすればいいのか・・・。 どうか、ご教授お願いします。

  • 初心者のC言語

    私は、昨日からC言語を勉強し始めました。 大学の教授から2週間以内に50行程度のCプログラムを書けるようになって こいと指示を受けましたが、C言語をやったことが無いので、どのような勉強を すればいいのか分かりません。 初心者にも分かりやすいC言語のテキストやサイトを知っている方がいれば 教えてください。 お願いします。

  • C言語初心者ですが……

    C言語初心者ですが…… すみません。このたびC言語を学び始めるにあたって一つ困ったことが起きましたので、助けてください。 はじめての人御馴染みの「Hello,world!」を画面に表示させるプログラムをつくりました。拡張子も構文も完璧に作ることができました。しかし、exeファイルを開いて確認しようとしたところ、一瞬で画面が閉じてしまい、「Hello,world!」が表示されているかどうか確認できずにいます。 この原因が何なのか、対処法とあわせてご指導していただけると幸いです。 なお、自分はWindows7でMicrosoft Visual C++ 2010 Expressを使っています。

  • C言語超初心者です><

    閲覧ありがとうございます。 C言語超初心者です。 「基本交換法・基本挿入法をC言語でプログラミングせよ」という課題が出されました。 ググッてみたところ、乗っているのは数字を小さい順に並べるものばかりで、 作りたいのは数列(6 2 5 3 1 7 4)を大きい順に並べ直すというものです。 つまり(7 6 5 4 3 2 1)にしたいのですが、小さい数を右に右にずらすのではなく、 大きい数を左に左にずらすというのは可能でしょうか? 可能であれば、そのプログラムを教えていただきたいです。 できれば、学校で習っているのが下記の形から始めるというものなので、その形で書き始めていただけるとわかりやすいです。 #include <stdio.h> void main(void) その際、よろしければ説明(特にそれぞれの変数が何を指すのか)なども加えていただけると嬉しいです。 わがままばかりですいませんが、お力を貸してください>< よろしくお願い致します。

  • C言語を勉強中の初心者です。

    C言語を勉強中の初心者です。 身長と体重をscanfで入力、表示するまではできるのですが、その入力件数を出したいのですが いろいろネットで探してもよくわかりませんでご教授ください。