我的项目是创建一个计算器,其中包括一些舍入函数,如:
正常圆角、地板和天花板。
它们出现在程序中,如下所示:
圆(x)
天花板(x)
楼层(x)
这是菜单的代码:

    else if (user_input == 3){      /*Rounding Operations*/
    instructions_Rounding();
    scanf("%d",user_input);
    while(user_input!=4){
        if(user_input==1){              /*For round(x)*/
            printf("\nEnter a number to round it: ");
            scanf("%lf",&num1);
            double rnd;
            rnd = num1+0.5;
            result = floor(rnd);
            printf("\nResult is %f", result);
            user_input=4;

        else if(user_input==2){         /*For ceil(x)*/
            printf("\nEnter a number: ");
            scanf("%lf",&num1);
            result = ceil(num1);
            printf("\nResult is %f", result);
            user_input=4;
        }

        else if(user_input==3){         /*For floor(x)*/
            printf("\nEnter a number: ");
            scanf("%lf",&num1);
            result = floor(num1);
            printf("\nResult is %f",result);
            user_input=4;

        }

    }

}

注意:这个循环可以通过设置用户输入为4来结束,但是这个循环在一个更大的循环中,可以通过设置为5来结束我不知道这会有什么帮助,但我认为这可能是某些事情的原因,值得一提。
不管怎样,支尔格大会运行得很完美,除非我从这个菜单中选择了任何一个选项,否则它会给我这样一个错误:
http://oi44.tinypic.com/2gwdssy.jpg
我真的看不出我的代码有什么问题。它以前工作得很好,但只有当我对菜单有问题时,才需要一段时间来考虑如何在每次操作后返回主菜单,而不是陷入无限循环。但只有当我把它修好了才发生这种事。不知道为什么。
有人能告诉我这个密码有什么问题吗?这样做正常吗?
哦,我在三台不同的电脑上测试过,所以我的电脑没问题。

最佳答案

这一行:

scanf("%d",user_input);

应该是:
scanf("%d",&user_input);

关于c - 为什么在使用floor和ceil以及取整函数时,我的C程序意外终止?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20924656/

10-11 22:58
查看更多