zlh 发表于 2015-12-30 17:46:03

打字程序错误


我写了一个打字程序,但是在判断对错的时候出现了BUG,请各位大大看看,哪里算法出错了
ps:没有报错,但是无论怎么输入都是错的。@machimilk
#include<stdio.h>

int C(void)
{   
        int i,k=0;
        char j,l;
        char a[]="hello";
        char b[]="world";
        printf("%s %s\n",a,b);
        scanf("%s\n%s",&j,&l);
    for(i=0;i<4;i++);
        {   
                if(a != j);
                {
                        printf("错误!\n");
                        return 0;
                }
        }
    for(i=0;i<4;i++);
        {   
                if(b != l);
                {
                        printf("错误!\n");
                        return 0;
                }
        }
        printf("正确!\n");

        return 0;
}

int main(void)
{
        int i;

        printf("   打字程序\n");
        printf("    1:Hello world\n");
        printf("      请输入:");
        scanf("%d",&i);

        switch(i)
        {
        case 1:C();break;
        }

        return 0;
}

黑龍 发表于 2015-12-30 18:57:15

等下 找到问题了

黑龍 发表于 2015-12-30 19:01:54

本帖最后由 黑龍 于 2015-12-30 19:22 编辑

代码往下看↓

黑龍 发表于 2015-12-30 19:02:13

大概是这样

黑龍 发表于 2015-12-30 19:04:06

这样 我再给你改一下

黑龍 发表于 2015-12-30 19:22:18

#include <stdio.h>
#include <string.h>

int C(void)
{   
        char a,b;
        char su[]="hello world";
        scanf("%s%s",a,b);
        strcat(a," ");//融合字符串
        strcat(a,b);
        if(!strcmp(su,a))
                printf("正确!\n");
        else
                printf("错误!");
        return -1;
}

int main(void)
{
      int f;
      printf("   打字程序\n");
      printf("    1:Hello world\n");
      printf("      请输入:");
      scanf("%d",&f);
      switch(f)
      {
                        case 1:C();break;
      }
                getchar();
      return 0;
}

machimilk 发表于 2015-12-30 22:23:47

实在看不明白,你要写的预期目的是什么样的

黑龍 发表于 2015-12-31 06:58:10

machimilk 发表于 2015-12-30 22:23
实在看不明白,你要写的预期目的是什么样的

目测是这样的 要输入字符串 hello world 然后判断字符串 是hello world就输出正确 否则输出错误

zlh 发表于 2016-1-3 18:15:33

黑龍 发表于 2015-12-31 06:58
目测是这样的 要输入字符串 hello world 然后判断字符串 是hello world就输出正确 否则输出错误

谢谢,还不知道有个这么好用的命令呢。

machimilk 发表于 2016-1-4 04:05:32

zlh 发表于 2016-1-3 18:15
谢谢,还不知道有个这么好用的命令呢。

你把问题搞那么复杂做什么,比对输入和预期是否一样很简单

int main()
{
        printf("   打字程序\n");
    printf("    1:Hello world\n");
    printf("      请输入:");
        char str;
        scanf("%[^\n]", &str);
        if (strcmp(str,"Hello world")==0)
        {
                printf("正确\n");
        }
        else
        {
                printf("错误\n");
        }
        system("pause");
        return 0;
}

黑龍 发表于 2016-1-4 19:22:48

machimilk 发表于 2016-1-4 04:05
你把问题搞那么复杂做什么,比对输入和预期是否一样很简单

他可能不知道string.h中的strcmp
页: [1]
查看完整版本: 打字程序错误