Онлайн компилятор C

#include <stdio.h> int main() { int size; scanf("%d", &size) int count[8] = {0}; for (int i = 2; i <= size; i++) { for (int digit = 2, digit <= 9; digit++) { if (i % digit == 0) { count[i - 2]++; } } } for (int i = 2; i <= 9; i++) { printf("%d %d", i, count[i - 2]); } return 0; }
这段代码试图统计从2到size的每个整数能被2到9中哪些数字整除,但存在多个语法和逻辑错误。

- 第5行缺少分号,导致编译错误。
- 第8行内层for循环的语法错误:括号内使用了逗号而不是分号,且条件部分写成了`digit <= 9`但前面是`digit = 2`,应使用分号分隔。
- 数组`count`的大小是8,但索引`i-2`在`i`从2到`size`时,若`size`大于9会导致数组越界。实际上你似乎想统计每个数字作为除数出现的次数,但当前逻辑是每个整数`i`被整除时增加对应`count[i-2]`,这不符合常见需求。
- 最后输出时,`printf`没有换行,且格式可能不清晰。