• 締切済み

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