1613551 发表于 2022-5-4 18:02:40

学编程这么久一直都没解决的一个bug

我这个程序就是,随便输入两个数字,然后比较两个数字是不是一样,但是无论输入什么显示的结果都是两个数字不相同
#include <stdio.h>
int main()
{
    int a = 0, b = 0, c = 0;
    printf("请输入第一个数字");
    scanf("%d", &a);
    getchar();
    printf("请输入第二个数字");
    scanf("%c", &b);
    if (a != b)
    {
      c = 1;
    }
    if (c == 1)
    {
      printf("两个数字完全不相同");
    }

    else
    {
      printf("两个数字完全一致!");
    }

    return 0;
}

isdkz 发表于 2022-5-4 18:08:24

本帖最后由 isdkz 于 2022-5-4 18:09 编辑

%c 是字符类型,这里会获取一个字符给 b,所以 b 就是第二个数字的第一个字符的 ascii 码,你找不出问题的时候可以加 printf 输出一下 a、b 的值来看看,然后再思考原因,把 %c 改为 %d      

#include <stdio.h>
int main()
{
    int a = 0, b = 0, c = 0;
    printf("请输入第一个数字");
    scanf("%d", &a);
    getchar();
    printf("请输入第二个数字");
    // scanf("%c", &b);         %c 是字符类型,这里会获取一个字符给 b,所以 b 就是第二个数字的第一个字符的 ascii 码,你找不出问题的时候可以加 printf 输出一下 a、b 的值来看看,然后再思考原因,把 %c 改为 %d      
    scanf("%d", &b);   
    if (a != b)
    {
      c = 1;
    }
    if (c == 1)
    {
      printf("两个数字完全不相同");
    }

    else
    {
      printf("两个数字完全一致!");
    }

    return 0;
}

傻眼貓咪 发表于 2022-5-4 18:08:56

scanf("%d", &b);
页: [1]
查看完整版本: 学编程这么久一直都没解决的一个bug