所以我是编程和学习C / C ++的新手。分配是创建一个简单的程序,用于计算项目的给定价格和数量的总和。我难以理解的部分是我们不允许在创建程序时使用“if或switch语句”。我们需要询问用户该项目是否应纳税,使用1表示是,0表示否。现在我有程序计算两者并读出税收和非税收。任何帮助将不胜感激,我知道这是业余和最基本的编程。
#include <stdio.h>
#define TAX_RATE 0.065
int main() {
int item_quantity, taxable;
float item_price, total_with_tax, total_without_tax, a, b;
// Read in the price of the item
printf("What is the price of the item? (Should be less than $100)\n");
scanf("%f<100", &item_price);
// Read in the quantity of the item being purchased
printf("How many of the item are you purchasing? (Should be less than 100) \n");
scanf("%d<100", &item_quantity);
// Read in if it is taxable or not
printf("Is the item a taxed item (1 = yes, 0 = no)?\n");
scanf("%d", &taxable);
// Calculate total with tax
a = item_quantity*item_price*(1 + TAX_RATE);
// Calculate total without tax
b = item_quantity*item_price;
printf("Your total purchase will cost $%.2f\n", a);
printf("Your total purchase will cost $%.2f\n", b);
return 0;
}
答案 0 :(得分:7)
因此taxable
是0
或1
。现在看看这两行之间的相似性:
a = item_quantity*item_price*(1 + TAX_RATE);
b = item_quantity*item_price;
如何使用taxable
的值创建这一行,以便它在taxable
为1
时第一行执行的操作以及taxable
时第二行执行的操作{1}}是0
?哪个位需要改变?你怎么能做到这一点?
既然这是你的任务,我认为这已经足够了解。
你好像在挣扎。好的,请考虑以下与上述两行完全相同的行:
a = item_quantity*item_price*(1 + TAX_RATE);
b = item_quantity*item_price*(1);
他们之间有什么区别?有些东西消失了。什么是使用基本数学运算符使某些东西消失的简单方法?
答案与C ++的任何特殊内容无关。这只是数学!
答案 1 :(得分:1)
在没有if
或switch
声明的情况下做出决策的最常见选项是&&
(“和”运算符),||
(“或”运算符), ?:
(三元运算符)和*
(乘法运算符)。
答案 2 :(得分:0)
如果用户给你0,你必须找到一种方法来否定TAX_RATE。这是一个简单的数学运算,我们试图提示你。
答案 3 :(得分:0)
U可以更改公式:
a = item_quantity * item_price *(1 + TAX_RATE);
在等式中添加应税变量,使得当taxable为0时,
等式变为:
a = item_quantity * item_price