#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
:数字
答案 0 :(得分:1)
您的功能中存在拼写错误: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;
}