2014-01-22 2 views
0

그래서 프로그래밍 및 C/C++ 학습을 처음 사용합니다. 과제는 주어진 가격과 수량의 합계를 계산하는 간단한 프로그램을 만드는 것입니다. 난처한 부분은 프로그램을 만들 때 "if 또는 switch 문"을 사용할 수 없다는 것입니다. 우리는 항목에 과세 여부를 물어볼 필요가 있습니다. 예를 들면 1을 사용하고 0을 사용합니다. 지금 나는 둘 다 계산하고 과세와 비과세 모두를 읽을 수있는 프로그램을 가지고 있습니다. 어떤 도움이라도 대단히 감사하겠습니다. 저는 이것이 아마추어이고 프로그래밍의 가장 기초적인 것이라는 것을 압니다.C++의 간단한 논리. IF 문을 사용할 수 없습니다.

#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

당신은 [삼원 연산자 (HTTP를 시도 할 수 :

수학되고, 0 인 경우에 가산되는 방식으로 방정식에 과세 변수를 추가 //en.wikipedia.org/wiki/Ternary_operation). 이것이 숙제 임으로 저는 구현을 그대로 두겠습니다. – marko

답변

7

그래서 taxable0 또는 1 중 하나입니다. 이제이 두 선 사이의 유사성을보고 : 당신이 만들 수있는 방법

a = item_quantity*item_price*(1 + TAX_RATE); 
b = item_quantity*item_price; 

이이 taxable1이고 두 번째 라인은 무엇을 할 때 첫 번째 줄이 무엇 않도록 taxable의 값을 사용하는 단일 라인 taxable0 일 때? 어떤 비트를 바꿔야합니까? 어떻게 그렇게 할 수 있니?

당신의 임무이기 때문에, 나는 그것이 단서로 충분하다고 생각합니다.


당신은 고민 할 것 같다.

a = item_quantity*item_price*(1 + TAX_RATE); 
b = item_quantity*item_price*(1); 

그들 사이의 차이점은 무엇입니까 : 좋아, 위의 두 선으로 동일 할 다음 행을 고려? 뭔가 사라졌습니다. 기본 수학 연산자를 사용하여 무언가를 사라지게하는 쉬운 방법은 무엇입니까?

대답은 C++의 특별한 기능과 아무 관련이 없습니다. 그것은 단지 수학입니다!

+0

그래서 삼진 연산자를 사용하는 방법을 검색 한 후 솔루션을 생각해 냈습니다. – mikeboyd941

+0

총 = (과세 == 1)? item_quantity * item_price * (1 + TAX_RATE) : item_quantity * item_price; – mikeboyd941

+1

@ user3050104 삼항 연산자는 필요한 것보다 더 복잡합니다. 그것은 기본적으로 변장의 'if'이고 당신에게 당신의 임무를 준 사람이 당신이 그것을 사용하기를 원하지 않는다고 확신합니다. 이것은'if' 또는 삼항 연산자 없이는 매우 쉽게 풀 수 있습니다.당신은 간단한 산술을 사용하여 그것을 할 수 있습니다. –

0

사용자가 0을 제공하는 경우 TAX_RATE를 무효화하는 방법을 찾아야합니다. 단서를 찾기 위해 노력하는 간단한 수학 연산입니다.

1

if 또는 switch 문없이 의사 결정을 만들기위한 가장 일반적인 옵션은 || ("또는"연산자), ?: (삼항 연산자), 및 * (곱하기 연산자)를 && ("및"연산자)이다.

0

U 방정식 변경할 수

A = item_quantity ITEM_PRICE * * (1 + TAX_RATE)를;

A = item_quantity *이 ITEM_PRICE가

관련 문제