Online Compiler C

#include <stdio.h> int main() { int n, save_n; scanf("%d", &n); save_n = n; for (int digit = 0; digit <= 9; digit++) { n = save_n int count_digit = 0; while (n > 0) { int current_digit = n % 10; n /= 10; if (current_digit == digit) { count_digit++; } } if (count_digit > 1) { printf("%d," digit); } }
这段代码的目的是统计一个整数中每个数字(0-9)出现的次数,并输出出现次数大于1的数字。但代码中存在语法错误和逻辑问题。

- 第8行 `n = save_n int count_digit = 0;` 这一行有语法错误,不能在一行中同时进行赋值和变量声明。你需要先重置 `n` 的值,再声明并初始化 `count_digit`,这两步应该分开写。
- 第15行 `printf("%d," digit);` 的格式字符串中缺少了格式说明符,`digit` 应该作为参数传入,而不是直接写在字符串里。