所以,我对编程完全陌生,我正在学习 C 语言编程。我正在尝试用 C 语言编写一个简单的程序来计算佣金,如下
#include<stdio.h>
int main()
{
float fRate, fSales_Price, fCost, fCommission;
printf("\nEnter your commission rate: ");
scanf("%.2f",&fRate);
printf("\nEnter the price of the item sold: ");
scanf("%.2f", &fSales_Price);
printf("\nEnter the original cost of the item: ");
scanf("%.2f", &fCost);
fCommission = (fRate / 100) * (fSales_Price - fCost);
printf("\nYour commission is: %.2f", fCommission);
}
每当我尝试运行它时,都会发生两件事。首先,如果我尝试在程序中输入任何小数,例如如果我说汇率是 12.5,它会立即跳过其他输入并完成程序,说佣金是 0.00。如果我忽略小数,程序会正常运行直到最后,此时我仍然获得 0.00 的佣金。有什么建议吗?
最佳答案
你的格式说明符是错误的,如果你这样做,你必须使用编译器警告,那么你就不会问这个,因为该格式说明符无效,你不能用 scanf()< 限制小数位数
它已经在 SO 的许多问题中讨论过,更重要的是你不需要,而且它没有意义,所以只需从格式说明符中删除 .2
,而是,在使用这些值之前检查 scanf()
是否成功。
关于c - 简单的 C 程序无法正确计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493940/