【问题标题】:Loop to ask if user wants to play again (y/n)循环询问用户是否想再次播放(y/n)
【发布时间】:2016-09-22 15:24:05
【问题描述】:

这是我的 bmi 计算器代码。 我想在最后添加一个问题,询问用户是否想要计算另一个 bmi 或者用户想要停止。 我希望这个问题的答案是 y 或 n。

  • y = 计算另一个 bmi
  • n = 再见

到目前为止我的代码:

#include<stdio.h>;
void main()
{
 float w,h,bmi;
 printf("vul uw gewicht in in kilogram.");
 scanf("%f",&w);
 printf("vul uw hoogte in in meters. (bijvoorbeeld: 1.75)");
 scanf("%f",&h);
 bmi=w/(h*h);
 printf("bmi: %f",bmi);
 bmi<18.5?printf(" je bent best wel dun eet een burger :p"):(bmi<25)?printf(" lekker gewicht, blijf zo doorgaan"):(bmi<30)?printf(" ik zou wat minder gaan eten als ik jou was"):printf("Oh Oh, u bent in gevaar");
}

【问题讨论】:

  • 使用do while 循环几乎所有当前的main
  • 而且,看在遗憾的份上,不要像这样滥用?: 三元运算符——使用if (…) … else if (…) … else …。此外,#include 行末尾的分号是完全没有必要的——我有点惊讶它与那个礼物一起编译。

标签: c


【解决方案1】:

试试这个

#include<stdio.h>;
void main()
{
    char opt='y';
    while(1)
    {
    float w,h,bmi;
    printf("vul uw gewicht in in kilogram.\n");
    scanf("%f",&w);
    printf("vul uw hoogte in in meters. (bijvoorbeeld: 1.75)\n");
    scanf("%f",&h);
    bmi=w/(h*h);
    printf("bmi: %f",bmi);
    bmi<18.5?printf(" je bent best wel dun eet een burger :p\n"):(bmi<25)?printf(" lekker gewicht, blijf zo doorgaan\n"):(bmi<30)?printf(" ik zou wat minder gaan eten als ik jou was\n"):printf("Oh Oh, u bent in gevaar\n");
        printf("calculate again : n for exit, y to continue?\n");
        scanf("%c&*c",&opt);
        if(opt=='n')
        {
            printf("EXIT\n");
            break;
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-30
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 2016-09-22
    • 2021-04-06
    • 1970-01-01
    相关资源
    最近更新 更多