在printf中进行多余操作时
在实现输出1—1000以内能被7整除的所有正整数中,将换行的 j 在输出满足7倍数的语句中进行累加没有报错
但在螺旋输出矩阵时,将换行的 i、j 累加放到输出数字的时候却出现了问题:
下面是单独的 i、j 累加整个程序逻辑没有问题
#include <stdio.h>
void main() {
int a[5][5]={{1,2,3,4,5},{16,17,18,19,6},{15,24,25,20,7},{14,23,22,21,8},{13,12,11,10,9}};
int i=0,j=0,n=5,t=0;
while (a[i][j]<25){
// 右
while (j<n) printf("%d ", a[i][j++],j--,i++);
// j--;
// i++;
// 下
while (i<n) printf("%d ", a[i++][j],i++,j--);
// i--;
// j--;
// 左
while (j>-1+t) printf("%d ", a[i][j--],j++,i--);
// j++;
// i--;
// 上
while (i>0+t) printf("%d ", a[i--][j],i++,j++,n--,t++);
// i++;
// j++;
// n--;
// t++;
}
printf("%d", a[i][j]);
}
不是很清楚对于printf,在语句中执行多余操作时,内部实际的执行情况如何,还请各位指点