WA求助

P3392 涂条纹

我改了一下,用这个,你那个读入字符,系统可能判断有误 ```c #include <stdio.h> int main() { int cnt = 0, n, m, i, j, k, p, num, min = 100000; char c, flag[100][100] = { 0 }; scanf("%d %d", &n, &m); for (i = 1; i <= n; i++) { scanf("%s",flag[i]); } for (i = 1; i <= n - 2; i++) { for (j = i + 1; j <= n - 1; j++) { cnt = 0; for (p = 1; p <= i; p++) { for (k = 0; k < m; k++) { if (flag[p][k] != 'W') { cnt++; } } } for (p = i + 1; p <= j; p++) { for (k = 0; k < m; k++) { if (flag[p][k] != 'B') { cnt++; } } } for (p = j + 1; p <= n; p++) { for (k =0; k < m; k++) { if (flag[p][k] != 'R') { cnt++; } } } if (cnt < min) { min = cnt; } } } printf("%d", min); return 0; } ```
by telankesi @ 2022-12-26 23:06:13


哪位大佬知道为啥他这个读入有问题,麻烦@一下我,求教
by telankesi @ 2022-12-26 23:08:03


@[telankesi](/user/866969) 加一个`getchar()`就好了
by OoXiao_QioO @ 2022-12-27 07:38:01


```cpp #include <stdio.h> int main() { int cnt = 0, n, m, i, j, k, p, num, min = 100000; char c, flag[100][100] = { 0 }; scanf("%d %d", &n, &m); getchar(); for (i = 1; i <= n; i++) { scanf("%s",flag[i]); } for (i = 1; i <= n - 2; i++) { for (j = i + 1; j <= n - 1; j++) { cnt = 0; for (p = 1; p <= i; p++) { for (k = 0; k < m; k++) { if (flag[p][k] != 'W') { cnt++; } } } for (p = i + 1; p <= j; p++) { for (k = 0; k < m; k++) { if (flag[p][k] != 'B') { cnt++; } } } for (p = j + 1; p <= n; p++) { for (k =0; k < m; k++) { if (flag[p][k] != 'R') { cnt++; } } } if (cnt < min) { min = cnt; } } } printf("%d", min); return 0; } ``` @[telankesi](/user/866969)
by OoXiao_QioO @ 2022-12-27 07:38:37


@[telankesi](/user/866969) 因为会读入换行啊,建议不要轻易用 ```scanf``` 读入字符
by sunyizhe @ 2022-12-27 08:23:41


|