你是先打印,再做的判断,当然会把3打印出来啊
换行的问题,你break之前n的值为1,对5求余不为0,它肯定不会换行了
要修改的话,把判断语句和换行语句放到外层循环去
for (int i = 1;i <= 4;i++)
{
//因为你实际上是要忽略i等于3时的一整行,所以只需要在外层循环判断i的值就行了
if (i == 3) continue;
for (int j = 1;j <= 5;j++)
{
printf("%d\t", i * j);
}
//换行放到内层循环之后是最好的,不需要再声明一个n了
printf("\n");
}