这段代码存在以下几个问题:
1. for
循环的控制条件错误:
- 第一个循环
for (int i = 0; i++; i <= 3)
,这里应该是i < 3
,而不是i++
再判断i <= 3
。i++
是先使用i
的值再进行自增,这样会导致循环条件判断错误。 - 第二个循环
for (int j = 0; j++; j <= 3)
同理,应该是j < 3
。
2. printf
输出位置错误:
printf("%c\n",ch);
放在内层循环中,每输出一个字符就换行一次,这样不会输出 3x3 的矩形,应该在内层循环结束后再换行。
以下是修正后的代码:
c
#include <stdio.h>
int main() {
char ch;
scanf("%c", &ch);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%c", ch);
}
printf("\n");
}
return 0;
}