2016-11-09 85 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