功能回到主要

时间:2015-12-11 15:56:08

标签: c function

我想知道当我调用我的函数void BMIcalculator()时我怎么能跳回到int main(),如果用户想要一次又一次地计算他/她的BMI直到他/她,那么什么是正确的逻辑陈述?累了然后按[2]返回我的主页。

void BMIcalculator(){
    system("cls");
    int choice;

    float kg=0,m=0,totalBMI=0;

    do{
        p("[1] calculate BMI    ");
        p("[2] back ");
        s("%d", &choice);

    if( choice == 1){
        gotoxy(1, 1); p("Enter weight :           kilograms");
        gotoxy(1, 2); p("Enter height :           meters");
        gotoxy(1, 3); p("Body Mass Index = ");
        gotoxy(20, 1); s("%f", &kg);
        gotoxy(20, 2); s("%f", &m);
        totalBMI=kg/(m*m);
        gotoxy(20, 3); p("%.2f",totalBMI);

        }else if( choice == 2){
            go back to main;
        }

    }while(choice == 1);
}

int main(){

    int choice;

    p("[1] BMI calculator");
    p("[2] Price calculator");
    p("[3] NATS");
    p("[4] Exit");
    s("%d", &choice);

    if(choice == 1){
        BMIcalculator();
    }
    .....
}

2 个答案:

答案 0 :(得分:1)

您可以更改while条件,但如果您不想要,则只需添加一个return语句:

else if(choice == 2){
    return;
}

如果你想无限重复,你应该添加一个循环:

while(1) {
    p("[1] BMI calculator");
    p("[2] Price calculator");
    p("[3] NATS");
    p("[4] Exit");
    s("%d", &choice);

    if(choice == 1){
        BMIcalculator();
    }
}

答案 1 :(得分:0)

您应该使用DO-WHILE,在while条件下控制输入,然后重新启动“while”。

例如:

do
  { 
      //your function; 
     scanf(" %d",&choice);
   }
   while(choice==1);