3-1. 카페 키오스크 주문 누적 프로그램

문제설명

카페 키오스크에서 여러 번 주문을 받는 프로그램을 작성하시오. 사용자는 메뉴 번호를 계속 입력할 수 있으며, 0을 입력하면 주문을 종료한다. 메뉴와 가격은 다음과 같다.

  • 1번: 아메리카노 (3000원)
  • 2번: 라테 (4000원)
  • 3번: 모카 (4500원)

올바른 메뉴 번호를 입력하면 수량을 입력받는다. 단, 한 번의 주문에서 수량이 2잔 이상이면 해당 주문 금액에서 500원 할인한다.

잘못된 메뉴 번호를 입력하면 "잘못된 메뉴입니다."를 출력하고 다시 메뉴를 입력받는다. 주문이 종료되면 다음 내용을 출력하시오.

  • 총 주문 건수
  • 총 음료 수량
  • 최종 결제 금액

목표

  • 반복문을 사용하여 여러 번 입력받을 수 있다.
  • 조건문을 사용하여 메뉴별 가격을 처리할 수 있다.
  • 잘못된 입력을 판별하고 다시 입력받을 수 있다.
  • 누적 합계와 개수를 계산할 수 있다.

요구사항

  1. 메뉴 번호를 반복해서 입력받는다.
  2. 메뉴 번호가 0이면 주문을 종료한다.
  3. 메뉴 번호가 1, 2, 3이 아니면 "잘못된 메뉴입니다."를 출력한다.
  4. 올바른 메뉴 번호를 입력한 경우 수량을 입력받는다.
  5. 메뉴별 가격에 따라 주문 금액을 계산한다.
  6. 수량이 2 이상이면 해당 주문 금액에서 500원을 할인한다.
  7. 주문이 끝나면 다음 형식으로 출력한다.
총 주문 건수: X
총 음료 수량: Y
최종 결제 금액: Z원
 

 

출력예시

========= 메뉴  =========
1. 아메리카노 (3000원)
2. 라테 (4000원)
3. 모카 (4500원)
0. 종료

선택: 1
수량 입력: 1
========= 메뉴  =========
1. 아메리카노 (3000원)
2. 라테 (4000원)
3. 모카 (4500원)
0. 종료

선택: 2
수량 입력: 2
========= 메뉴  =========
1. 아메리카노 (3000원)
2. 라테 (4000원)
3. 모카 (4500원)
0. 종료

선택: 3
수량 입력: 5
========= 메뉴  =========
1. 아메리카노 (3000원)
2. 라테 (4000원)
3. 모카 (4500원)
0. 종료

선택: 0
총 주문 건수: 3
총 음료 수량: 8
최종 결제 금액: 32500원

 

코드예시

더보기
#include <stdio.h>

int main(void)
{
    int menu;
    int count;
    int price = 0;

    int order_count = 0;
    int total_drink = 0;
    int total_price = 0;

    int order_price = 0;

    while (1)
    {
        printf("========= 메뉴  =========\n");
        printf("1. 아메리카노 (3000원)\n");
        printf("2. 라테 (4000원)\n");
        printf("3. 모카 (4500원)\n");
        printf("0. 종료\n");
        printf("\n선택: ");

        scanf("%d", &menu);

        if (menu == 0) break;
        
        switch (menu)
        {
        case 1:
            price = 3000;
            break;

        case 2:
            price = 4000;
            break;

        case 3:
            price = 4500;
            break;

        default:
            printf("잘못된 메뉴입니다.\n");
            continue;
        }

        printf("수량 입력: ");
        scanf("%d", &count);

        order_price = price * count;

        if (count >= 2)
        {
            order_price = order_price - 500;
        }

        order_count++;
        total_drink += count;
        total_price += order_price;
    }

    printf("총 주문 건수: %d\n", order_count);
    printf("총 음료 수량: %d\n", total_drink);
    printf("최종 결제 금액: %d원\n", total_price);

    return 0;
}
 

 

 

3-2. 특별한 수 찾기

문제설명

정수 N을 입력받아, 1부터 N까지의 수 중에서 특별한 수의 개수와 합을 구하는 프로그램을 작성하시오.

특별한 수의 조건은 다음과 같다.

  1. 3의 배수이거나 5의 배수이다.
  2. 단, 15의 배수는 제외한다.
  3. 그리고 짝수인 수만 포함한다.

즉, 1부터 N까지 반복하면서 조건을 만족하는 수의 개수을 구해야 한다.

 

목표

  • 반복문을 사용하여 일정 범위의 수를 검사할 수 있다.
  • 조건문을 사용하여 여러 조건을 조합할 수 있다.
  • 배수 조건과 짝수 조건을 정확히 판별할 수 있다.
  • 개수와 합을 동시에 누적할 수 있다.

요구사항

  1. 정수 N을 입력받는다.
  2. 1부터 N까지 반복한다.
  3. 각 수에 대해 다음 조건을 검사한다.
    • 3의 배수 또는 5의 배수
    • 15의 배수는 제외
    • 짝수만 포함
  4. 조건을 만족하는 수의 개수와 합을 구한다.
  5. 다음 형식으로 출력한다.
개수: X
합: Y
 

 

출력예시

N 입력: 20
개수: 3
합: 34

 

코드예시

 
더보기
#include <stdio.h>

int main(void)
{
    int n;
    int i;
    int count = 0;
    int sum = 0;

    printf("N 입력: ");
    scanf("%d", &n);

    for (i = 1; i <= n; i++)
    {
        if ((i % 3 == 0 || i % 5 == 0) && (i % 15 != 0) && (i % 2 == 0))
        {
            count++;
            sum += i;
        }
    }

    printf("개수: %d\n", count);
    printf("합: %d\n", sum);

    return 0;
}
 

+ Recent posts