字梯的c程序

字梯的c程序,c,word,C,Word,我已经为word ladder编写了C代码。 它正在验证给定的测试用例。但是对于1个测试用例,它的输出是错误的,我不知道应该在哪里进行更改 问题: 有一类字谜游戏,给你两个单词,比如bick和MAKE,你必须一次换一个字母才能从一个单词到另一个单词。解决这样的难题需要良好的词汇和一些横向思维,但一旦有了答案,检查答案只会很乏味,而且适合计算机来做。请注意,即使是正确的解决方案也不能保证是最小的 如果梯形图中的每对相邻单词适用以下条件,则解决方案是正确的: 它们的长度相同 正好有一个字母变了

我已经为word ladder编写了C代码。 它正在验证给定的测试用例。但是对于1个测试用例,它的输出是错误的,我不知道应该在哪里进行更改

问题:

有一类字谜游戏,给你两个单词,比如bick和MAKE,你必须一次换一个字母才能从一个单词到另一个单词。解决这样的难题需要良好的词汇和一些横向思维,但一旦有了答案,检查答案只会很乏味,而且适合计算机来做。请注意,即使是正确的解决方案也不能保证是最小的

如果梯形图中的每对相邻单词适用以下条件,则解决方案是正确的:

  • 它们的长度相同
  • 正好有一个字母变了
编写一个程序,检查建议的解决方案

输入格式:

输入将是一个解决方案,即它由一系列字组成,每行一个,终止 通过包含单个#的行。一个单词是一个序列——在三到二十个大写字母之间

输出格式:

根据需要输出单词“正确”或“不正确”

示例输入1:

吠叫 光秃秃的 # 样本输出1:

对的 样本输入2:

制作 烤 邦克 骨头 祸根 # 样本输出2:

不正确 我的代码

#include<stdio.h>
#include<string.h>
int main()
{
  int i,count;
  char a[100],b[100],c[100];
  int flag=1;
  scanf("%s",a);
  do
  {
 scanf("%s",b);
    if(b[0]=='#')
   break;
    if(strlen(a)==strlen(b))
    {  i=0,count=0;
     while(a[i]!='\0')
     {

       if(a[i]!=b[i])
         count++;
         if(count==2)
         {
         flag=0;
         }

       i++;
     }
   }
    else
    {
      flag=0;
    }
    scanf("%s",a);
    if(a[0]=='#')
      break;
   //  scanf("%s",c);
   strcpy(c,a);
   strcpy(a,b);
    strcpy(b,c);

   }
   while(a[0]!='#');
  if(flag==1)
   printf("Correct");
  else
    printf("Incorrect");
   return 0;
   }
#包括
#包括
int main()
{
int i,计数;
字符a[100],b[100],c[100];
int标志=1;
scanf(“%s”,a);
做
{
scanf(“%s”,b);
如果(b[0]='#')
打破
如果(strlen(a)=strlen(b))
{i=0,计数=0;
而(a[i]!='\0')
{
如果(a[i]!=b[i])
计数++;
如果(计数=2)
{
flag=0;
}
i++;
}
}
其他的
{
flag=0;
}
scanf(“%s”,a);
如果(a[0]='#')
打破
//scanf(“%s”,c);
strcpy(c,a);
strcpy(a,b);
strcpy(b,c);
}
而(a[0]!='#');
如果(标志==1)
printf(“正确”);
其他的
printf(“不正确”);
返回0;
}
此输入的程序输出不正确

代码->cade->美食->日期->数据


你读单词的次数太多了。我的意思是,你读的比你比较多

看看这个:

  • 第一个
    scanf()
    (进入
    a
    )不计算在内。它过去有一些东西可以比较
  • 循环中的第二个
    scanf()
    (进入
    b
  • 循环中
    a
    b
    的比较
  • 循环中的第三个
    scanf()
    (进入
    a
  • 重复第2步
  • 循环中应该只有1个
    scanf()
    和1个比较


    你的缩进也很痛。

    那么,你的最后期限是什么时候?@gustafbstrom今天是最后期限。.在C语言中,你可以用字符做算术。示例“a”-“b”产生-1(!=0)。也许你可以用这个想法来改进你的解决方案。请格式化你的代码。这很痛。@Elyasin我的逻辑有什么错。读
    a
    ;2读
    b
    ;3比较
    a
    b
    ;4将
    b
    复制到
    a
    ;5转到2 Correct MAKE BAKE BONK BONE BANE # Incorrect
    #include<stdio.h>
    #include<string.h>
    int main()
    {
      int i,count;
      char a[100],b[100],c[100];
      int flag=1;
      scanf("%s",a);
      do
      {
     scanf("%s",b);
        if(b[0]=='#')
       break;
        if(strlen(a)==strlen(b))
        {  i=0,count=0;
         while(a[i]!='\0')
         {
    
           if(a[i]!=b[i])
             count++;
             if(count==2)
             {
             flag=0;
             }
    
           i++;
         }
       }
        else
        {
          flag=0;
        }
        scanf("%s",a);
        if(a[0]=='#')
          break;
       //  scanf("%s",c);
       strcpy(c,a);
       strcpy(a,b);
        strcpy(b,c);
    
       }
       while(a[0]!='#');
      if(flag==1)
       printf("Correct");
      else
        printf("Incorrect");
       return 0;
       }