gjc2010gys 发表于 2021-8-7 18:20:47

为什么我的程序在运行时出错?

#include <stdio.h>

int main()
{
        char input;//定义个字符变量为input
        jump:printf("请输入one:\n"); //输出 ,同时为这条代码加追jump标签
        scanf("%s",input);//接收字符串
    if (input == 'one')//判断 input变量内容是否为one
    {
            printf("Goodjob ! Now input again!\n");
            goto jump; //跳转至jump标签语句
    }
    printf("Come!Just do that,OK?!\n");
    return 0;
}

从Python转战C语言,刚刚入门。各位大佬帮忙看看。谢谢啦。

Robot_Steve 发表于 2021-8-7 18:34:55

本帖最后由 Robot_Steve 于 2021-8-7 18:36 编辑

你这个代码有一下问题:
1. C语言中用单引号括住表示字符,双引号表示字符串
2. 变量input是一个字符(char)类型,但是你用scanf却写的是"%s"(%s表示字符串)

更改的代码如下:
#include <stdio.h>

int main()
{
        char input[] = "";
        jump:printf("请输入one:\n"); //输出 ,同时为这条代码加追jump标签
        scanf("%s", input);//接收字符串
    if (input == "one")
    {
                printf("Goodjob ! Now input again!\n");
                goto jump; //跳转至jump标签语句
    }
    printf("Come!Just do that,OK?!\n");
    return 0;
}

jackz007 发表于 2021-8-7 18:52:13

      字符串比较不可以这样写
if (input == 'one')
      得这样写
if (! strcmp(input , "one"))
      
页: [1]
查看完整版本: 为什么我的程序在运行时出错?