我不知道是否有人问过这个问题,但这是我的:
如果我有以下代码;总计的价值是多少?
因为输出始终是+ 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/