我不知道是否有人问过这个问题,但这是我的:
如果我有以下代码;总计的价值是多少?
因为输出始终是+ ve值而不是-ve值,否则请在我错的地方指导我。谢谢。
附注:IAM使用Turbo C 3.o编译器。

void subtract (void)
        {
            float f1;
            float f2=0.0;
            float f3=0.0;
            float total;
            printf("Enter numbers to be subtract:'q' to quit.\n ");
            while (scanf("%f",&f1)==1)
                {
                    f3=f1+f2;
                    total=f3-f1;
                    printf("Enter another # to be subtract:'q' to quit.\n ");
                    scanf("%1.0f",&f1);
                }
            printf("Subtraction Total = %1.0f",total);
            getch();
        }


//我现在使用的是简单的减法,例如3.6-9.2,我没有得到-5.6而是得到了9(例如)

通过执行以下操作,我完成了我所想要的;谢谢你们

void subtract (void)
            {
                float f1;
                float f2;
                int status1,status2;
                float total;

                printf("Enter first number to subtract:'n' to quit.\n ");
                status1=scanf("%f",&f1);
                printf("Enter second number to be subtract from first:'n' to quit.\n ");
                status2=scanf("%f",&f2);
                while (status1==1 && status2==1)
                    {

                        total = f1 - f2;
                        printf("total=%1.2f \n",total);
                        printf("Enter first number to subtract:'n' to quit.\n ");
                        status1=scanf("%f",&f1);
                        printf("Enter second number to be subtract from first:'q' to quit.\n ");
                        status2=scanf("%f",&f2);
                    }
                printf("Subtraction Total = %1.1f",total);
                getch();
            }

最佳答案

列出所有问题太多了。但是,以下是一些入门指南:


f2永远不会设置为零以外的任何值。
您在每个循环迭代中两次调用scanf(),两者都试图读入相同的变量。
每次循环迭代都会覆盖前一次迭代的结果。
您可能需要调整最终printf()中使用的格式说明符。

关于c - 输出始终为+ ve值,而不是-ve为浮点值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8999754/

10-10 12:38