我认为问题在嵌套之前就开始了,因为在代码末尾它应该输出sales = price * sold
的结果,但它也会输出0
#include<stdio.h>
main() {
int num, price, sold, sales;
float compercent, commision;
printf("Enter Unit Price: ");
scanf("%d", &price);
printf("Enter Quantity Sold: ");
scanf("%d", &sold);
sales = price * sold;
if (sales >= 50000) {
compercent = 0.1;
}
else if (sales >= 40000 && sales < 50000) {
compercent = 0.08;
}
else if (sales >= 30000 && sales < 40000) {
compercent = 0.06;
}
else if (sales >= 20000 && sales < 30000) {
compercent = 0.04;
}
else if (sales >= 10000 && sales < 20000) {
compercent = 0.02;
}
else if (sales >= 5000 && sales < 10000) {
compercent = 0.01;
}
else if(sales<5000){
compercent = 0;
}
commision = sales * compercent;
printf("Sales: ");
printf("sales = %f", &sales);
printf("Commision: ");
printf("%f", &commision);
}
sales
是一个整数变量,因此乘法完成。整数算术。尝试commision = static_cast<double> (sales) * compercent
或只是将sales
声明为双精度。
[使用prinf
时,您无需提供变量作为参考。该函数需要一个整数或浮点数,而不是指针。