【发布时间】:2023-02-03 23:16:08
【问题描述】:
#include<stdio.h>
void main()
{
int t,i=0;
scanf("%d",&t);
while(t--)
{
char c;
scanf("%c",&c);
char s[10]="codeforces";
while(s[i]!='\0')
{
if(s[i]==c)
printf("YES\n");
else
printf("NO\n");
i++;
}
}
}
我尝试了 10 个测试用例,但输出是 10 次 NO
【问题讨论】:
-
使用
" %c"会有所帮助。 (但还有其他问题。) -
有相当很多此代码的问题。无论你使用什么学习资源,摆脱它,并获得一本关于 C 的合适书籍。
-
在这样的代码中,几乎没有理由一次读取一个输入字符。甚至当你做想要一次读取一个字符,
scanf和"%c"通常是一种不必要的令人沮丧和拜占庭式的方式。我建议使用fgets读取输入的密码,然后使用strcmp进行测试。 (但要注意fgets会在字符串中留下\n,所以你必须处理它。) -
除非您为
t输入 0,否则“我输入 t 后它不接受输入”的描述似乎不太准确。我想那是你的解释,但由于它对代码没有意义,您或许应该退后一步并回顾您的实际观察结果。
标签: c