重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

c++の問題について教えてほしいんですが

キーボードから入力された0から9までの数字各々の個数をカウントし、表示するプログラムを作れ。

という問題です。
お願いします。

A 回答 (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"));
}
    • good
    • 0

> c++の問題について教えてほしいんですが



どうでもいいことかもしれませんが、C++の問題ならC++の関数を使わなくてもよろしいのでしょうか?

あとは、回答No.2の方の提示されたコードをもう少し短くしてみることに挑戦してみると面白いかと思います。
    • good
    • 0

#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]);
}

コンパイル確認済です。
いかがでしょうか?
ご自分で字下げ等で見やすくしてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/01/21 21:25

スイッチ文を使えば良いと思います。


それぞれの数に対してカウンターを用意すれば終わりです。

この回答への補足

どのような形になるか詳しく教えてもらっていいですか?

お手数掛けますがお願いします。

補足日時:2009/01/21 19:23
    • good
    • 0

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