3-1. 카페 키오스크 주문 누적 프로그램
문제설명
카페 키오스크에서 여러 번 주문을 받는 프로그램을 작성하시오. 사용자는 메뉴 번호를 계속 입력할 수 있으며, 0을 입력하면 주문을 종료한다. 메뉴와 가격은 다음과 같다.
- 1번: 아메리카노 (3000원)
- 2번: 라테 (4000원)
- 3번: 모카 (4500원)
올바른 메뉴 번호를 입력하면 수량을 입력받는다. 단, 한 번의 주문에서 수량이 2잔 이상이면 해당 주문 금액에서 500원 할인한다.
잘못된 메뉴 번호를 입력하면 "잘못된 메뉴입니다."를 출력하고 다시 메뉴를 입력받는다. 주문이 종료되면 다음 내용을 출력하시오.
- 총 주문 건수
- 총 음료 수량
- 최종 결제 금액
목표
- 반복문을 사용하여 여러 번 입력받을 수 있다.
- 조건문을 사용하여 메뉴별 가격을 처리할 수 있다.
- 잘못된 입력을 판별하고 다시 입력받을 수 있다.
- 누적 합계와 개수를 계산할 수 있다.
요구사항
- 메뉴 번호를 반복해서 입력받는다.
- 메뉴 번호가 0이면 주문을 종료한다.
- 메뉴 번호가 1, 2, 3이 아니면 "잘못된 메뉴입니다."를 출력한다.
- 올바른 메뉴 번호를 입력한 경우 수량을 입력받는다.
- 메뉴별 가격에 따라 주문 금액을 계산한다.
- 수량이 2 이상이면 해당 주문 금액에서 500원을 할인한다.
- 주문이 끝나면 다음 형식으로 출력한다.
총 음료 수량: 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까지의 수 중에서 특별한 수의 개수와 합을 구하는 프로그램을 작성하시오.
특별한 수의 조건은 다음과 같다.
- 3의 배수이거나 5의 배수이다.
- 단, 15의 배수는 제외한다.
- 그리고 짝수인 수만 포함한다.
즉, 1부터 N까지 반복하면서 조건을 만족하는 수의 개수와 합을 구해야 한다.
목표
- 반복문을 사용하여 일정 범위의 수를 검사할 수 있다.
- 조건문을 사용하여 여러 조건을 조합할 수 있다.
- 배수 조건과 짝수 조건을 정확히 판별할 수 있다.
- 개수와 합을 동시에 누적할 수 있다.
요구사항
- 정수 N을 입력받는다.
- 1부터 N까지 반복한다.
- 각 수에 대해 다음 조건을 검사한다.
- 3의 배수 또는 5의 배수
- 15의 배수는 제외
- 짝수만 포함
- 조건을 만족하는 수의 개수와 합을 구한다.
- 다음 형식으로 출력한다.
합: 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;
}
'[1] 프로그래밍1 및 실습(C언어) > 4주차. 반복문, 조건문' 카테고리의 다른 글
| [4주차] [조건문] 2단계 연습문제 - 코드읽기 (0) | 2026.03.23 |
|---|---|
| [4주차] [조건문] 1단계 연습문제 - 코드읽기 (0) | 2026.03.23 |
| [4주차] [반복문] 3단계 연습문제 (0) | 2026.03.23 |
| [4주차] [반복문] 2단계 연습문제 (0) | 2026.03.23 |
| [4주차] [반복문] 1단계 연습문제 (0) | 2026.03.23 |