C语言实验课第一次实验第一题

sy1_1.c 身高预测题//
     说明:请把自己写的程序按照题目编号命名文件,如本题源程序文件名为 sy1_1.c 设 faHeight 为小孩的父亲身高, moHeight 为小孩的母亲身高。
身高预测公式为:
                                        男性成人时身高=(faHeight + moHeight)×0.54cm
                                        女性成人时身高=(faHeight×0.923 + moHeight)/2cm
     此外,如果喜爱体育锻炼,那么可增加身高 2%;如果有良好的卫生饮食习惯,那么可增加身高 1.5%。编程从键盘输入用户的性别(sex), 父母身高(faHeight, moHeight),体育爱好(sports),饮食习惯(diet), 根据给定公式和身高预测方法,输出预测的身高。
     数据说明(字符型变量 sex-输入字符 F 表示女性,-M 表示男性)、父母身高(实型变量faHeight 为其父身高,moHeight 为其母身高)、是否喜爱体育锻炼(用字符型变量 sports,输入字符 Y 表示喜爱,-N 表示不喜爱)、是否有良好饮食习惯(用字符型变量 diet,Y 表示良好,N 表示不好)。
 
代码:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
  float faHeight,moHeight,kidHeight;
  char sex,sport,diet;
  printf("please input your sex:\n");
  printf("(------输入F为男性,M为女性------)\n");
  scanf("%c",&sex);
  printf("性别是:%c\n",sex);
  printf("\n");

  printf("please input faHeight and moHeight:\n");
  printf("(------输入父亲和母亲的身高,用空格隔开------)\n");
  scanf("%f%f",&faHeight,&moHeight);
  printf("父亲身高是:%f,母亲身高是:%f\n",faHeight,moHeight);
  printf("\n");
  fflush(stdin);

  printf("Do you like sport?\n");
  printf("(------喜欢输入Y,否则输入N------)\n");
  scanf("%c",&sport);
  printf("运动:%c\n",sport);
  fflush(stdin);
  printf("\n");

  printf("Do you eat a healthy diet?\n");
  printf("(------健康输入Y,否则输入N------)\n");
  scanf("%c",&diet);
  printf("饮食:%c\n",sport);
  printf("\n");

  if(sex=='F')
  {
    if(sport=='Y')
    {
      if(diet=='Y')
      {
        kidHeight=(faHeight+moHeight)*0.54*(1+0.02)*(1+0.015);
      }
      else
      {
        kidHeight=(faHeight+moHeight)*0.54*(1+0.02);
      }
    }
    else
    {
      if(diet=='Y')
      {
        kidHeight=(faHeight+moHeight)*0.54*(1+0.015);
      }
      else
      {
        kidHeight=(faHeight+moHeight)*0.54;
      }
    }
  }
  else
  {
    if(sport=='Y')
    {
      if(diet=='Y')
      {
        kidHeight=((faHeight*0.923+moHeight)/2)*(1+0.02))*(1+0.015);
      }
      else
      {
        kidHeight=((faHeight*0.923+moHeight)/2)*(1+0.02);

      }

    }
    else
    {

      if(diet=='Y')
      {
        kidHeight=((faHeight*0.923+moHeight)/2*(1+0.015));

      }
      else
      {
        kidHeight=((faHeight*0.923+moHeight)/2);
      }
    }
  }
  printf("预测孩子的身高是:%f\n\n",kidHeight);
  system("pause");

  return 0;

}

else与相距最近的if匹配,最好加花括号确定配对关系(代码条理更清晰)。

涉及多个if语句的嵌套,采用锯齿形格式编写程序(便于阅读)。

在scanf函数语句输入数据前,用printf函数输出必要的提示信息

posted @ 2020-12-21 13:35  HosenTin  阅读(712)  评论(0)    收藏  举报