c - 返回 main 的函数

标签 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();
    }
    .....
}

最佳答案

您可以更改 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();
    }
}

关于c - 返回 main 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34227575/

相关文章:

python - C/Python 中的 asn.1 解析器

c - ISO C 标准中 __attribute__ 的替代品是什么?

c - 在 C 中决定返回值的通用方法是什么?

python - 按值传递至闭包

excel - 总是被踢出潜艇?

c - ARM 的微优化 C 代码

c - 静态变量的奇怪情况仅出现在 gcc 的调试版本中

c - 问号字符 ('?' ) 是什么意思?

c++ - 如何重构嵌套的for循环?

c - 为什么 call 函数中的 if else 不适用于 do while 函数?