c语言在printf内写多余操作

在printf中进行多余操作时

在实现输出1—1000以内能被7整除的所有正整数中,将换行的 j 在输出满足7倍数的语句中进行累加没有报错

img

但在螺旋输出矩阵时,将换行的 i、j 累加放到输出数字的时候却出现了问题:

img

下面是单独的 i、j 累加整个程序逻辑没有问题

img

#include 

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"%d ", a[i][j++],j--,i++);
//        j--;
//        i++;
        //while (i"%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,在语句中执行多余操作时,内部实际的执行情况如何,还请各位指点

printf的打印操作本身是不能这样操作,建议修改printf的打印。将运算放在printf外进行。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^