为了修正程序的逻辑错误并确保每四个偶数换行,我们可以修改程序如下:
#include<stdio.h>
int main(void) {
int n, i, count = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
if (i % 2 == 0) {
printf("%4d", i); // 输出当前的偶数i,占4个字符宽度
count++; // 增加已打印偶数的计数
if (count % 4 == 0) { // 每打印4个偶数换行
printf("\n");
}
}
}
if (count % 4 != 0) { // 检查最后一个数字后是否需要换行
printf("\n");
}
return 0;
}
改动说明:
count
用于记录已经打印的偶数数量。flag
变量,因为 count
变量已经可以控制换行。printf
语句,使其输出格式更紧凑,不再使用额外的空格。count
增加1。if (count % 4 == 0)
判断是否每打印4个偶数就执行换行。if
语句检查如果最后一个偶数不是第四个(即不满足换行条件),则在最后添加一个换行符。这样可以确保输出格式的整齐和正确。现在这个程序应该按照要求正确地输出所有偶数,并在每四个数字后换行。