注册 登录
编程论坛 C语言论坛

为什么结果为0???太奇怪了改了很多遍还是0

hahahahaha在 发布于 2020-11-14 16:51, 1325 次点击
#include <stdio.h>
int main()
{
    char sex;
    char sports;
    char diet;
    float myheight;
    float faheight;
    float moheight;
    printf("你是男孩(b)还是女孩(g)?");
    scanf("%ls",&sex);
    printf("平常是否喜欢运动(y/n)?");
    scanf("%ls",&sports);
    printf("是否有良好的饮食习惯(y/n)?");
    scanf("%ls",&diet);
    printf("输入你妈妈的身高:");
    scanf("%f",&moheight);   
    printf("输入你爸爸的身高:");
    scanf("%f",&faheight);
    if(sex=='b'||sex=='B');
    {
        myheight=((faheight+moheight)*0.54);
     }
     if(sex=='g'||sex=='G');
     {
         myheight=((faheight*0.923+moheight)/2);
     }
     if(diet=='y'||diet=='Y');
     {
         myheight=myheight*(1+0.015);
      }
      if(sports=='y'||sports=='Y');
      {
          myheight=myheight*(1+0.02);
      }
    printf("Your future height will be %.2f(cm)\n",myheight);
    return 0;
 }
5 回复
#2
风过无痕19892020-11-14 18:22
回复 楼主 hahahahaha在
程序代码:

#include <stdio.h>
int main()
{
    char sex;
    char sports;
    char diet;
    float myheight;
    float faheight;
    float moheight;
    printf("你是男孩(b)还是女孩(g)?");
    scanf("%c", &sex);                   // 输入字符用 %c,不用%s,更无须使用 long
    getchar();                           // 吸收输入确认的回车键
    printf("平常是否喜欢运动(y/n)?");
    scanf("%c", &sports);                // 输入字符用 %c,不用%s,更无须使用 long
    getchar();                           // 吸收输入确认的回车键
    printf("是否有良好的饮食习惯(y/n)?");
    scanf("%c", &diet);                  // 输入字符用 %c,不用%s,更无须使用 long
    getchar();                           // 吸收输入确认的回车键
    printf("输入你妈妈的身高:");
    scanf("%f", &moheight);
    printf("输入你爸爸的身高:");
    scanf("%f", &faheight);
    if (sex == 'b' || sex == 'B')        // 多了一个分号
    {
        myheight = ((faheight + moheight) * 0.54);
    }
    else if (sex == 'g' || sex == 'G')   // 性别是二选一的,需加 else, 多了一个分号
    {
        myheight = ((faheight * 0.923 + moheight) / 2);
    }
    if (diet == 'y' || diet == 'Y')      // 多了一个分号
    {
        myheight = myheight * (1 + 0.015);
    }
    if (sports == 'y' || sports == 'Y')  // 多了一个分号
    {
        myheight = myheight * (1 + 0.02);
    }
    printf("Your future height will be %.2f(cm)\n", myheight);
    return 0;
}
#3
王牌疯姐姐2021-07-21 18:00
我运行可以啊
#4
hellobird2021-07-23 23:16
只有本站会员才能查看附件,请 登录


只有本站会员才能查看附件,请 登录
#5
hellobird2021-07-23 23:18
程序代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>

void eat_line(void);
int input_height(const char *prompt, float *height);
bool yes_or_no(const char *prompt, const char *str);

int main(void)
{

  float father_height = 0.0;
  float mother_height = 0.0;
  float my_height     = 0.0;

  input_height("输入你爸爸的身高:", &father_height);
  input_height("输入你妈妈的身高:", &mother_height);
  
  eat_line();
  if(yes_or_no("你是男孩(b)还是女孩(g)?", "Bb")) { //默认男孩
    my_height = (father_height + mother_height) * 0.54;
  } else {
    my_height = (father_height * 0.923 + mother_height) / 2.0;
  }

  eat_line();
  if (yes_or_no("是否有良好的饮食习惯(y/n)?", "Yy")) {
    my_height *= (1 + 0.015);
  }

  eat_line();
  if (yes_or_no("平常是否喜欢运动(y/n)?", "Yy")) {
    my_height *= (1 + 0.02);
  }

  printf("\nYour future height will be %.2f(m)\n",my_height);

  return 0;
}

/**********************
清除缓冲区无效的字符
**********************
*/
void eat_line(void)
{
  int ch;

  while ((ch = getchar()) != EOF && ch != '\n' )
    ;
}

/*********************
根据提示符输入身高
0表示输入失改
1表示成功
*********************
*/
int input_height(const char *prompt, float *height)
{
  printf("%s", prompt);
  fflush(stdout);
  return scanf("%f", height) == 1;
}


/*********************
范围选择
*********************
*/
bool yes_or_no(const char *prompt, const char *str)
{
  int ch;
  printf("%s", prompt);
  fflush(stdout);
  ch = getchar();
  return strchr(str, ch) != NULL;
}
#6
ws55ai662021-08-01 23:06

/*判断男女 判断运动  判断习惯 */

#include <stdion.h>
#include <sdtlib.h>
int main()
{
    char sex;
    char sports;
    char diet;
    float myheight;
    float faheight;
    float moheight;
    printf("你是男孩(b)还是女孩(g)?");    //最好再来个判断输入的字符是否为b || g ,否则提示重新输入!
    scanf("%c",&sex);
    getchar();
    printf("平常是否喜欢运动(y/n)?");   // 同理判断输入是否为y,Y.,...提示重新输入!  下面的也一样!
    scanf("%c",&sports);
    getchar();
    printf("是否有良好的饮食习惯(y/n)?");
    scanf("%c",&diet);
    getchar();
    printf("输入你妈妈的身高:");
    scanf("%f",&moheight);   
    printf("输入你爸爸的身高:");
    scanf("%f",&faheight);

   if (sex == 'b'||sex == 'B')
       { if (sports == 'y'|| sports == 'Y')
           {    if(diet == 'y'|| diet == 'Y')
                printf( "our future height will be = %.2f\n",myheight * (1 + 0.015));
                else
                printf( "our future height will be = %.2f\n",这个公式自己定!每个人都不一样));
            }
      
      else
          {    if(diet == 'y'|| diet == 'Y')
               printf( "our future height will be = %.2f\n",这个公式自己定!每个人都不一样));
               else
               printf( "our future height will be = %.2f\n",这个公式自己定!每个人都不一样));
           }
         
      }   
 else
    {
      性别为女。。。。。代码!!

    }

  ruturn 0;
}



1