例如:如果用户输入是11234517并且想要在此输入中看到1的数量,则输出将是" 1的数字是3.我希望您理解我的内容的意思。
我只能计算整数中的位数。
#include <stdio.h>
int main()
{
int n, count = 0;
printf("Enter an integer number:");
scanf("%d",&n);
while (n != 0)
{
n/=10;
count++;
}
printf("Digits in your number: %d",count);
return 0;
}
也许数组是解决方案。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:5)
您不需要数组。尝试这样的事情:
int countDigits(int number, int digitToCount)
{
// Store how many times given number occured
int counter = 0;
while(number != 0)
{
int tempDigit = number % 10;
if(tempDigit == digitToCount)
counter++;
number = number/10;
}
return counter;
}
答案 1 :(得分:4)
因此,您已经发现可以使用1234
将123
转换为number / 10
(即删除最低有效数字)。
如果我们想要获得最低有效数字,我们可以使用number % 10
。对于1234
,其值为4
。
了解这一点,我们可以修改您的代码以考虑到这一点:
int main() {
int n, count = 0;
printf("Enter an integer number:");
scanf("%d",&n);
while (n != 0) {
if (n % 10 == 1)
count++;
n /= 10;
}
printf("Number of 1s in your number: %d", count);
return 0;
}
答案 2 :(得分:1)
您可能希望使用convert your int to a string,如下所示:
char str[100];
sprintf(str, "%d", n);
然后,您可以在str
上进行迭代,以便找到您的数字的出现次数。