在用户输入数c ++中查找用户输入数字的出现次数

时间:2016-12-09 17:28:21

标签: 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;
}

2 个答案:

答案 0 :(得分: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;

这就是你要搜索的内容。

答案 1 :(得分:1)

转换userNum中的digCountstd::string,然后您可以使用std::count

#include <algorithm>

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