【发布时间】:2022-01-07 08:56:50
【问题描述】:
我的代码永远不会停止要求输入,所以我想我一定是做了一个无限循环,但我找不到错误在哪里。我还注意到,当逐行插入输入时,它会在插入第二个循环的第一行后打印一个循环的结果,这对我来说似乎不正确。请帮我调试。 (对于进一步的上下文,代码应该接收一个我们称之为 n 的数字,然后再扫描 3n 行,基本上是 n 束 3 行相似的行。第 2 行和第 3 行是具有相同字符数的两个单词, 第一行就是那个 num。输出是这些词是否是字谜。)
#include <stdio.h>
int main() {
int n, l;
scanf("%d\n", &n);
for (int i = 1; i <= n; i++) {
scanf("%d\n", &l);
char A[l], B[l];
for (int j = 0; j < l; j++) {
scanf("%c", &A[j]);
scanf("\n");
}
for (int j = 0; j < l; j++) {
scanf("%c", &B[j]);
scanf("\n");
}
for (int k = 0; k < l; k++) {
int result = 0;
for (int j = 0; j < l; j++) {
if (A[k] == B[j]) {
result = 1;
}
}
if (!result) {
printf("\nNO\n");
return 0;
}
}
printf("\nYES\n");
}
}
例子:
输入:
2
6
listen
silent
4
Evil
live
输出:
YES
NO
【问题讨论】:
-
你能发一个输入的例子吗?
-
evil、live等的每个字母是单独输入还是只在整个单词后按回车? -
你认为
abbbbbb和aaaaaab是“由相同的字母组成”吗? -
@Gerhardh 将每个空格计为换行符,因此每个单词都在一行而不是每个字符。不,这些词必须是字谜。它也区分大小写,因此第二个示例接收“NO”作为其输出。
-
为什么听和默前有2个不同的数字,我以为是1个数字后跟2个字?
标签: c visual-studio-code