2016-12-09 9 views
-2

タイトルには、数字の出現を見つけるためのプログラムが書かれている。 は両方ともユーザーによって入力されます。ユーザ入力番号のユーザ入力数字の出現数を見つける。C++

これは私がこれまでに得たものである:

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    int userNum; 
    int digCount; 
    int digSum; 

    cout << "Please enter your number:" << endl; 
    cin >> userNum; 

    cout << "Enter the digit you want to count:" << endl; 
    cin >> digCount; 

    if (digCount <= 0 || digCount > 9) 
    { 
     cout << "You entered an invalid counter!" << endl; 
    } 

    cout << "Number of occurances for your digit is:" << digSum << endl; 
} 
+1

ようこそスタックオーバーフロー!あなたの問題についてさらに詳しく説明してください。現在、特定の問題が発生しているかどうかは不明です。したがって、お手伝いできません。あなたは[質問]良い質問を読んで、スタックオーバーフローでここで期待されるどんな種類の質問が良いかを知りたいかもしれません。さらに、[mcve]の作成に関するページが役立つかもしれません。 – jaggedSpire

+0

コードはコンパイルされません(http://coliru.stacked-crooked.com/a/667ffb1c28abb01c)。上記の通り、[MCVE]を提供してください。 –

+0

_modulo_オペレーションについて、数字の特定の数字を確認してください。 –

答えて

1

std::stringuserNumdigCountの両方を変換し、その後、あなたはあなたが(モジュロとdevide)に持ってstd::count

#include <algorithm> 

digSum = std::count(StringUserNum.begin(), StringUserNum.end(), StringDigCount); 
+0

まだそれを取得しないでください。私の初心者はC + +で、私はいくつかの助けが必要なそれぞれの行を意味する必要があります。私はそれを書いたように書く必要があります。 – Eddy

+0

確かに 'userNum'と' digCount'を 'string'に変換してください、これは[link](http://stackoverflow.com/questions/5590381/easiest-way-to-convert-int-to-string-in-c ) あなたを助けられる。それぞれに 'StringUserNum'と' StringDigCount'と名前をつけて、あなたの関数の 'cout'の直前のコードをコピーしてください。 –

2

を使用することができ、スライスuserNumの最後の桁をdigitCount変数と比較します。 digCount変数がuserNumの最後の桁と等しい場合、digSum変数をインクリメントする必要があります。すべての桁がuserNumからスライスされると、whileループは停止します。

int userNum = 0; 
int digCount = 0; 
int digSum = 0; 

cout << "Please enter your number:" << endl; 
cin >> userNum; 

do 
{ 
    cout << "Enter the digit you want to count:" << endl; 
    cin >> digCount; 

    if (digCount <= 0 || digCount > 9) 
     cout << "You entered an invalid counter!" << endl; 
    else 
     break; 
} while (true); 

do 
{ 
    int j = userNum % 10; // get the last digit 
    if (j == digCount) // if the last digit is equal to digCount increment digSum 
     digSum++; 
    userNum = (userNum - userNum % 10)/10; // slice last digit 
} while (userNum != 0); // until all digits are sliced 

cout << "Number of occurances for your digit is:" << digSum << endl; 

これはあなたが探しているものです。

+0

ありがとうございます。私はそれがuserNum – Eddy

+0

と思うかもしれませんが、 1〜9 :) –

+0

@ Tarekhに現れる場合数字0を数えることができるようにするために(digCount <0 || digCount> 9)の場合、@ Denis-Adobeの場合は –

関連する問題