【问题标题】:what is wrong in this code...it is not taking input after I enter t这段代码有什么问题......在我输入 t 后它没有接受输入
【发布时间】: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


【解决方案1】:

#include<stdio.h>

无效主要() {

int t,i=0;
scanf("%d",&t);

while(t--)
{
    char c;
    scanf(" %c",&c);  // note the addition of a space character before the %c format specifier
    char s[10]="codeforces";
    
    while(s[i]!='
猜你喜欢
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 1970-01-01
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多