输入if条件时不显示变量(字符)-C

问题描述 投票:0回答:1

我是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编程的新手,我冒着学习这种语言的风险,而没有看书或观看视频课程。就目前而言,我之所以表现不错,是因为我以前对使用Java,JavaScript,PHP和C语言进行编程有所了解。但是这段代码到底发生了什么?

c netbeans cygwin
1个回答
0
投票
char name[100];

'name'是一个数组,并透明地转换为指向第一个元素的指针,即等效于char *。

scanf("%s", &name);

因此应该

scanf("%s", name);

另请参见有关如何更改scanf(“%s”,&genre);的注释]

© www.soinside.com 2019 - 2024. All rights reserved.