首页 > 解决方案 > 输入if条件时变量(char)不出现-C

问题描述

我是 C 语言的新手,尝试在 NetBeans 上构建此应用程序时,显然在编译此函数时没有错误。但是,当用户输入自己的姓名和性别时,应用程序通常会输入IF, ELSE IF, and ELSE,但是当输入IFand时ELSE 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 编程的新手,我冒着不看书或视频课程的情况下学习这门语言的风险。现在,我做得很好,因为我以前对 Java、JavaScript、PHP 和现在的 C 语言编程有一定的了解。但是这段代码到底发生了什么?

标签: cnetbeanscygwin

解决方案


您已定义name为一个字符数组。数组类型的变量的作用与指针非常相似。在您的scanf声明中name,您使用&name,它是指向该数组的指针。这太过分了。去除 &。


推荐阅读