首页 > 解决方案 > iso c++禁止指针和整数之间的比较,if语句与字母比较

问题描述

我正在尝试编写一个通过引入性别、年龄和身高来计算理想质量的算法。我的问题显然与性别有关,因为它不是数字字符。我尝试用 char 来介绍它,然后,由于女性和男性的理想质量不同,我尝试为每种性别做一个 if 语句。但是,我用来检查数值变量和常量之间相等性的传统方法在这里不起作用。我有点预料到这一点,但我仍然不明白如何解决它。我提到我是一个初学者,我不知道为什么它不起作用。我在该主题上阅读的其他答案提到使用“字符串”来介绍字母字符。我试过了,虽然我不能确定我是按预期做的,当我的程序计算时,它会遍历最后一个 if 语句,就好像它是真的一样,尽管它不是。


int main()
{
  int h, age;
  char sex;
  float masa;

  printf("introdu inaltimea: \n");
  scanf("%d", &h);
  printf("introdu varsta: \n");
  scanf("%d", &age);
  printf("introduce sexul [M/F]: ");
  scanf("%s", &sex);
  masa=50 + 0.75*(h-150) + (age-20)/4.00;

  if(sex=="M")
  {
      cout<<"masa ideala este "<<masa;
  }
  else
   masa=masa-10;
   cout<<"masa ideala este "<<masa;

   return 0;
}

标签: c++if-statementcharacter

解决方案


推荐阅读