c - 仅打印 "An error occurred in the program!"

标签 c

#include <stdio.h>

int main(){

    int age;
    char gender;
    printf("Are you male or female (m/f)?");
    scanf("%c",&gender);
    printf("Enter your age:");
    scanf("%d",&age);
    printf("\n");

    if(gender=="m"){
        if(age>=0 && age<=55){
         printf("You are a man in your best years!\n");
        }
        else if (age>=56 && age<=100){
            printf("You are a wise man!\n");}
        else{
    printf("An error occurred in the program!");}
    }
    else if(gender=="f"){
    if(age>=0 && age<=55){
         printf("You are a beauty!\n");
        }
        else if (age>=56 && age<=100){
            printf("You look young for your age!\n");}
        else{
    printf("An error occurred in the program!");}

    }
    else{
    printf("An error occurred in the program!");}
    return 0;
}

程序运行不正常。它只打印最后的 else 语句打印,即“程序中发生错误!”。我还尝试将所有条件放在同一个小括号中

喜欢:

if(gender=="f"&& age>=0 && age<=55)) 

但仍然没有输出预期的结果。

最佳答案

您正在将 charstring 文字 (gender == "m") 进行比较。双引号用于字符串。在 m (gender == 'm') 和 f (gender == 'f') 周围使用单引号。

关于c - 仅打印 "An error occurred in the program!",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40498725/

相关文章:

c - 从指针数组中删除元素

c - 如何在Windows中的C程序中输入字符而不显示在屏幕上并且不暂停屏幕?

c - C中负数的表示?

c - 如何在内核代码中获取子进程列表

c++ - 优化 switch 结构——如何避免添加 if 子句

c++ - strtok 工作不正常

c++ - 在 Rcpp 中使用其他包中的 C 函数

c - 如何处理c中的大输入

c - 使用 Frama-C 进行值(value)依赖分析

c - 如何通过kill命令从子进程向父进程发送信号