• 締切済み

c++の問題を教えてください

c++の問題について教えてほしいんですが キーボードから入力された0から9までの数字各々の個数をカウントし、表示するプログラムを作れ。 という問題です。 お願いします。

みんなの回答

  • bleis
  • ベストアンサー率68% (11/16)
回答No.4

C++ということですので、C++っぽく書いてみました。 #include <vector> #include <iostream> #include <algorithm> #include <iterator> int main() {   std::vector<int> count_table(10);   int input;   std::cin >> input;   while (input != -1) {     if (0 < input && input < count_table.size())       ++count_table[input];     std::cin >> input;   }   std::copy(count_table.begin(), count_table.end(), std::ostream_iterator<int>(std::cout, "\n")); }

noname#227064
noname#227064
回答No.3

> c++の問題について教えてほしいんですが どうでもいいことかもしれませんが、C++の問題ならC++の関数を使わなくてもよろしいのでしょうか? あとは、回答No.2の方の提示されたコードをもう少し短くしてみることに挑戦してみると面白いかと思います。

  • zenigataf
  • ベストアンサー率13% (7/52)
回答No.2

#include <stdio.h> #define N 10 main() { int x,i; int b[N]; for(i=0;i<10;i++) b[i]=0; printf("x="); scanf("%d",&x); do{ switch (x){ case 0:b[0]+=1; break; case 1:b[1]+=1; break; case 2:b[2]+=1; break; case 3:b[3]+=1; break; case 4:b[4]+=1; break; case 5:b[5]+=1; break; case 6:b[6]+=1; break; case 7:b[7]+=1; break; case 8:b[8]+=1; break; case 9:b[9]+=1; break; } printf("x="); scanf("%d",&x); }while(x<10); for(i=0;i<N;i++) printf("%d=%d個\n",i,b[i]); } コンパイル確認済です。 いかがでしょうか? ご自分で字下げ等で見やすくしてください。

1242133210
質問者

お礼

何度もすみませんでした。 どうもありがとうございました。

  • zenigataf
  • ベストアンサー率13% (7/52)
回答No.1

スイッチ文を使えば良いと思います。 それぞれの数に対してカウンターを用意すれば終わりです。

1242133210
質問者

補足

どのような形になるか詳しく教えてもらっていいですか? お手数掛けますがお願いします。

関連するQ&A

  • c言語がわかりません。

    (1)入力された文字列(10文字以下)の`a`の文字を除き、結果を表示するプログラムを作成する。 (2)入力された文字列について、数文字(0から9)の各々の出現個数と、それ以外の文字の出現個数をカウントし表示するプログラムを作成する。

  • C言語の問題

    配列の問題 1.キーボードから入力したアルファベットの大文字(A~Z)の入力回数をそれぞれ数え、結果を画面出力するプログラムを作成せよ。但し、入力の終了はEOFとし、入力回数のカウントには、配列を用いるものとする。(文字ごとに回数を格納する配列を用意する) 2.キーボードから番号(数字)を入力し、その番号に該当する文字列中の文字を画面表示するプログラムを作成せよ。なお、数字以外の文字が入力した場合と、文字列の範囲外の数字が入力された場合は、任意のメッセージを出力し、再入力するようにする。また文字列はキーボードから入力するものとする。 この問題が解けなくて困ってます。どうか知恵をかしてください。

  • C++ countについて

    最近C++の勉強を始めたのですが、 int count(char*a) という関数はどういう意味なんでしょうか? この関数を使って、たとえば abcde1f234 と打ち込むと、この文字列の数字の個数(この場合、4)を表示するプログラムを作成しなければならないのですが。 ifを使って0以上ならカウント、0以下ならカウントしないという感じで作ってみたのですが、打ち込んだ文字列全ての個数が表示されてしまいます。 どなたか解答お願いします。

  • =COUNTIF(C21:C30,"0>")が分かりません

    エクセルの入力中なのですが、 とあるセル中に、=COUNTIF(C21:C30,"0>") と入力しました。 要するに、 セルC21~C30にて0より小さい数が入っているセルの個数をカウントさせたいのですが、0より小さい数が入力されているセルがカウントされてくれません。マイナスの数字が何個あっても0と表示されてしまいます。 ちなみに=COUNTIF(C21:C30,">0")ですと、0より大きい数が入力されているセル数が正しく表示されます。 あまりにエクセルに無知すぎて原因がわかりません。 マイナス入力されているセルが正しく認識されていないようです。 「マイナス」ってテンキーやかなキー「ほ」で入力する「-」以外に特別な入力法などがあるのでしょうか? あるいは、セルのCOUNTIFの構文が間違ってるとか。でも負の数以外はちゃんと数えられているんですよね。。。

  • =COUNTIF(C21:C30,"0>")が分かりません

    エクセルの入力中なのですが、 とあるセル中に、=COUNTIF(C21:C30,"0>") と入力しました。 要するに、 セルC21~C30にて0より小さい数が入っているセルの個数をカウントさせたいのですが、0より小さい数が入力されているセルがカウントされれません。マイナスの数字が何個あっても0と表示されてしまいます。 ちなみに=COUNTIF(C21:C30,">0")ですと、0より大きい数が入力されているセル数が正しく表示されます。 あまりにエクセルに無知すぎて原因がわかりません。 マイナス入力されているセルが正しく認識されていないようです。 「マイナス」ってテンキーやかなキー「ほ」で入力する「-」以外に特別な入力法などがあるのでしょうか? あるいは、セルのCOUNTIFの構文が間違ってるとか。でも負の数以外はちゃんと数えられているんですよね。。。

  • C言語のプログラムを教えて欲しいです。

    大学でC言語のプログラムを組んでくる課題が出たのですが、 どう組めばいいのかさっぱりわかりません。 構想としては、 『乱数で適当にいくつかの数を選び、キーボードから適当に打ち込んだ数字で、 乱数で出してきた数と一致すれば勝てる』というような、 宝くじ的なプログラムを組みたいと思っています。 選ぶ乱数の範囲は10000~30000で、選ぶ個数は10個ほど。 キーボードからは数字の範囲は同じで打てる数は5個ほどで考えています。 どのように組めばよいか教えてください。 できれば、このプログラムを遊ぶためのルールや、打ち込んだ数字が当たっているかなどを DOS窓上に表示する方法も教えていただけると嬉しいです。 よろしくお願いします。

  • C++言語の課題です

    C++言語の課題です 4つの数字をキーボードから入力させ、入力が終わったら、その最大値を表示するプログラムを作成しなさい という問題が出ました。 4つの数字を入力して 読み込むまではわかりましたが 条件分岐のところから わからなくなりました。 使ってる文法は printf scanf if elseif などです どなたか教えて下さい

  • c言語でのプログラミング

    キーボードから複数個の正整数値を読み込み,合計値と平均値(小数第1位まで)を表示するプログラムを作りなさい。 ただし入力数値の個数はプログラミング時には決定していない。 負整数が入力されたら入力値はもうなくなったと判断することとし,負の数は計算には使用しないこととする。またデータは少なくとも1つは入力されるものとする。(p02ex15.c) 検証は1から10までの数字すべてを与え,合計値55,平均値5.5が表示されることを確かめること。 (「1,2,3,4,5,6,7,8,9,10,-1」(-1はデータ終わりの合図)を入力して確かめなさい。) また,1から5までの数字すべてを与え,合計値15,平均値3が表示されることを確かめること。 (「1,2,3,4,5,-1」(-1はデータ終わりの合図)を入力して確かめなさい。) このプログラムのソースコードを教えて下さい。 解説もよろしくお願いします。

  • C言語 ループの問題

    キーボードから入力される整数を読み込み、その中で10以上の数の個数を数えてその都度出力し、0が入力されたら止まるようなプログラムをwhile文を使って作成するとき、if文をどのようにつかうかがわかりません。

  • C言語のコマンドプロンプト表示について

    C言語のカウントアップの表示で、例えば 1% ↓ 2% ↓ 3% ↓ ・ ・ ・ みたいに、数字の部分の表示を切り替えて、カウントアップしていくプログラムを教えてほしいのですが・・・。 要するに ○% の○の部分の数字をその都度切り替えて、カウントアップしていきたいのです。 とても意味が分かりずらい質問ですいません。 よろしくお願いします。

専門家に質問してみよう