数字中特定数字的个数

Number of specific digits in a number

#include <stdio.h>

int elofordul(int sz, int szj) {
    int count = 0;
    while (sz > 0) {
        int szj2 = szj % 10;
        sz = sz / 10;
        if (szj2 == szj)
            count++;
    }
    return count;
}

int main() {
    int szam, szj;
    scanf("%d", &szam);
    scanf("%d", &szj);
    printf("%d", elofordul(szam, szj));
    return 0;
}

我不知道它有什么问题。它只是打印所有数字。 sz:数字,szj:数字

您的函数中有错别字:szj2 = szj % 10 应该是 szj2 = sz % 10

变量名、函数名应使用英文名,注释也应使用英文。您的变量名称令人困惑,确实令人困惑。

您的版本中还有另一个潜在的错误:程序可能应该打印 1 输入 0 0

这是修改后的版本:

#include <stdio.h>

int count_digit(int number, int digit) {
    int count = 0;
    for (;;) {
        if (number % 10 == digit)
            count++;
        number /= 10;
        if (number == 0)
            return count;
    }
}   

int main() {
    int number, digit;
    scanf("%d", &number);
    scanf("%d", &digit);
    printf("%d", count_digit(number, digit));
    return 0;
}