@[happycodehaha](/user/1482771)
下标错位了,`scanf` 后面加上 `sprintf(map[i], "%s%s", "1", map[i]);`
by 杜都督 @ 2024-10-11 23:47:20
```cpp
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>map[i][j];
}
```
@[杜都督](/user/39279)
用sprintf通不过,本来我是一层循环改成双层循环输入通过了,大佬问一下为什么原来一层循环输入下标会错位啊,关注你了
by LittleOcean @ 2024-10-12 19:03:18
@[happycodehaha](/user/1482771)
不是把 `scanf` 换成 `sprintf`,是在 `scanf` 那一行后面加一行 `sprintf`
因为你原来用字符串的方式输入 `map` 的每一行时,字符串默认下标是从 `0` 开始的,而题目约定的下标是从 `1` 开始的,所以读到的数据每一行的下标都比正确的数据向左偏移了一位
用 `sprintf` 是在读入每一行后都在前面加一个 `1`,用来对齐下标
by 杜都督 @ 2024-10-12 19:26:29
@[杜都督](/user/39279) 懂了谢谢
by LittleOcean @ 2024-10-13 17:17:04