@[Tokubara](/user/251011) 应该是fill里的输出打乱了矩阵
by 听取MLE声一片 @ 2020-09-17 21:55:23
我说漏了, 如果有printf, 那么结果正确, 否则结果错误.
有printf, 输出是:
```
r=2,c=2
r=1,c=0
r=2,c=0
r=1,c=1
r=0,c=2
r=1,c=2
r=0,c=0
r=2,c=1
8 1 6
3 5 7
4 9 2
```
没有则是:
```
0 7 0
9 0 0
0 0 8
```
by Tokubara @ 2020-09-17 22:16:19
@[Tokubara](/user/251011) 我这儿看来您的代码,本地调试并没有问题
by wheneveright @ 2020-09-17 22:24:57
![您看看我的调试结果](https://cdn.luogu.com.cn/upload/image_hosting/5bmwq501.png)
by wheneveright @ 2020-09-17 22:29:11
对呀,请问楼主大大是怎么得出
```
r=2,c=2
r=1,c=0
r=2,c=0
r=1,c=1
r=0,c=2
r=1,c=2
r=0,c=0
r=2,c=1
8 1 6
3 5 7
4 9 2
```
这个答案的
by ClapEcho233 @ 2020-09-17 22:32:54
的确奇怪, 我的代码是错的, 按理说就算有printf也不应该得出这样的结果.
看了各位说的, 如果我用debian虚拟机, 就不会有这样的情况. 上面的结果的平台是macos, 用gcc编译(用的是-O0选项).
也许看反汇编的结果会知道, 但是现在不太会看(而且非常长). 希望某天填上这个坑.
谢谢大家的热心帮助!
by Tokubara @ 2020-09-17 22:56:52
补充一下(为了完整性), 我的错误是在这一行:
`else if(a[last_r-1][last_c-1]>0`
应该是
`else if(a[last_r-1][last_c+1]>0`
by Tokubara @ 2020-09-17 23:01:26