2016-11-09 14 views
0
#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)) 

をまだそれが出力期待される結果をしませんでした。私はまた、

のように同じ小括弧内のすべての条件を入れてみました。

+3

gender == "m" ' - gender == 'm'' – BLUEPIXY

+1

これは類推によって、' else if(gender == "f") ' –

+0

にも同じことが当てはまります。 – Nibesh

答えて

3

charstringとの比較は、(gender == "m")です。二重引用符は文字列用です。 m (gender == 'm')およびf (gender == 'f')を一重引用符で囲みます。

+0

ありがとうございました。感謝します – Nibesh

関連する問題