C_language

실생활의 로직을 코드로 [정답]

헬로제이콥 2026. 2. 25. 21:51

📒 문제 3. 나만의 연락처 관리자 (구조체 활용)

[문제] 이름과 전화번호를 담는 구조체를 만들고, 사용자로부터 정보를 입력받아 출력하는 프로그램을 만드세요.

[힌트] typedef struct를 사용하여 연락처 정보를 묶고, 구조체 변수에 값을 입력받을 때는 . 연산자를 사용합니다.

#include <stdio.h>

typedef struct {
    char name[20];
    char phone[20];
} Contact;

int main() {
    Contact p;

    printf("--- 연락처 등록 ---\n");
    printf("이름 입력: ");
    scanf("%s", p.name);
    printf("번호 입력: ");
    scanf("%s", p.phone);

    printf("\n--- 저장된 정보 ---\n");
    printf("이름: %s\n", p.name);
    printf("번호: %s\n", p.phone);

    return 0;
}

☕ 문제 2. 커피숍 매출 기록기 (파일 저장)

[문제] 커피숍에서 판매된 메뉴 이름을 입력받아 sales.txt 파일에 저장하는 프로그램을 만드세요.

[힌트] 파일 출력 모드("a")를 사용하면 기존 내용을 지우지 않고 새로운 판매 기록을 아래에 계속 추가할 수 있습니다.

#include <stdio.h>

int main() {
    char menu[30];
    FILE *fp = fopen("sales.txt", "a"); // "a" 모드는 이어쓰기

    if (fp == NULL) return 1;

    printf("판매된 커피 메뉴를 입력하세요: ");
    scanf("%s", menu);

    fprintf(fp, "판매 메뉴: %s\n", menu);
    fclose(fp);

    printf("매출이 sales.txt에 기록되었습니다.\n");
    return 0;
}

🥤 문제 1. 미니 자판기 프로그램

[문제] 콜라(1200원), 사이다(1000원), 우유(800원)를 판매하는 자판기를 만드세요. 돈을 입력받고 메뉴를 선택하면 잔돈을 계산해 출력합니다.

[힌트] switch-case 문을 사용하여 메뉴를 선택하고, 입력받은 금액에서 메뉴 가격을 빼주세요.

#include <stdio.h>

int main() {
    int money, choice, price = 0;

    printf("--- 미니 자판기 ---\n");
    printf("현재 금액을 투입하세요: ");
    scanf("%d", &money);

    printf("1.콜라(1200) 2.사이다(1000) 3.우유(800)\n메뉴 선택: ");
    scanf("%d", &choice);

    if (choice == 1) price = 1200;
    else if (choice == 2) price = 1000;
    else if (choice == 3) price = 800;

    if (money < price) {
        printf("잔액이 부족합니다!\n");
    } else {
        printf("선택하신 음료가 나옵니다. 잔돈: %d원\n", money - price);
    }
    return 0;
}