正如标题所述,我正在编写一个程序来查找数字中数字的出现。 两者都是由用户输入的。
这是我到目前为止所得到的:
#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;
}
答案 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
中的digCount
和std::string
,然后您可以使用std::count
#include <algorithm>
digSum = std::count(StringUserNum.begin(), StringUserNum.end(), StringDigCount);