- 締切済み
c++の問題を教えてください
c++の問題について教えてほしいんですが キーボードから入力された0から9までの数字各々の個数をカウントし、表示するプログラムを作れ。 という問題です。 お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- bleis
- ベストアンサー率68% (11/16)
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")); }
> c++の問題について教えてほしいんですが どうでもいいことかもしれませんが、C++の問題ならC++の関数を使わなくてもよろしいのでしょうか? あとは、回答No.2の方の提示されたコードをもう少し短くしてみることに挑戦してみると面白いかと思います。
- zenigataf
- ベストアンサー率13% (7/52)
#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]); } コンパイル確認済です。 いかがでしょうか? ご自分で字下げ等で見やすくしてください。
- zenigataf
- ベストアンサー率13% (7/52)
スイッチ文を使えば良いと思います。 それぞれの数に対してカウンターを用意すれば終わりです。
補足
どのような形になるか詳しく教えてもらっていいですか? お手数掛けますがお願いします。
お礼
何度もすみませんでした。 どうもありがとうございました。