c - 进入if条件时不出现变量(char) - C

标签 c netbeans cygwin

我是 C 语言新手,当尝试在 NetBeans 上构建此应用程序时,显然在编译此函数时没有错误。但是,当用户输入姓名和性别时,应用程序通常会输入 IFELSE IFELSE,但在 中时IFELSE IF,用户名不会出现在printf()方法中。

#include <stdio.h>
#include <stdlib.h>

ex19(){
    char name[100];
    char genre;

    printf("Enter your name: ");
    scanf("%s", &name);

    printf("Enter your genre: ");
    scanf("%s", &genre);

    if (genre == 'M'){
        printf("%s you are a BOY", name);
    } 

    else if (genre == 'F'){
        printf("%s is GIRL", name);
    }

    else {
        printf("INVALID GENRE");
    }
}

main(){
    ex19();
}

这个算法会出现什么问题?抱歉胡说八道,我是 C 编程新手,我冒着不看书籍或视频类(class)就学习这门语言的风险。目前,我做得很好,因为我之前掌握了 Java、JavaScript、PHP 编程知识,现在又掌握了 C 语言编程知识。但是这段代码到底发生了什么?

最佳答案

您已将 name 定义为字符数组。数组类型的变量的作用与指针非常相似。在 namescanf 语句中,您使用 &name,它是指向该数组的指针。这太过分了。删除 &。

关于c - 进入if条件时不出现变量(char) - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58896695/

相关文章:

c - 为什么程序中必须有main

c - 函数中的 12 天圣诞节 C 程序

java - 与 JWS java 应用程序的服务器交互的最佳方式是什么

ssh localhost 连接被 127.0.0.1 关闭?

ruby - COM 端口未出现在 Cygwin 中

在 Mac 上的 Xcode 中使用 fopen(fileName, "wb") 后无法访问我的二进制文件

c - 我怎样才能得到正确的字符串长度?

Java - 英国邮政编码 validator 到美国邮政编码 validator

java - SwingWorker 导致子类中出现错误

c++ - 程序在cmd中运行,在cygwin中立即退出,状态为127,在emacs shell中没有输出