我有下一个代码,要求用户引入一个大于100000000的数字,然后它要求代码必须在数字中搜索的数字,最后代码显示数字出现在数字上的次数,它似乎很容易,但我有一个限制:
数据类型不能是字符串或字符,这就是我使用int的原因,但是当我引入像100100010000100这样的真正的大数字代码时,代码无法正常工作,我怎么能解决这个问题呢? ??如果有人可以帮我解决这个问题,我会非常感激
#include <iostream>
using namespace std;
int searchDigit(long int num,int digit);
int main()
{
long int num;
int digit,x;
cout << "Give me the number: " << endl;
cin >> num;
cout << "Digit " << endl;
cin >> digito;
x = searchDigit(num,digit);
cout << "\nThe digit " << digit << " appears " << x << " times" << endl;
return 0;
}
int searchDigit(long int num,int digit)
{
int r,c,p = 0;
for(c = num;c != 0;c = c/10)
{
r = c % 10;
if(r == digit)
p++;
}
return p;
}
答案 0 :(得分:0)
请注意,在searchDigit
中,for-loop中有c = num
。如果long int
大于int
- 在许多平台上都是如此 - 您将失去num
的高位。
如果您启用了更多编译器警告,则可能会选择此警告。由于您没有提供有关平台,编译器或使用的标志的信息,因此很难更具体。