-
[C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 8주차학교 수업/1-1, 1-2 코딩 기초 (파이썬, C) 2020. 10. 19. 16:18반응형
CHAPTER 9 연습문제
3번
#include <stdio.h> void static_sum(int end); int main() { int i; for (i = 0; i < 10; i++) static_sum(i); return 0; } void static_sum(int end) { static int sum = 0; int n = end + 1; printf("%2d번째 호출, sum = %3d + 1 ~ %3d까지의 합: %3d\n", n, sum, n, sum+n*(n+1)/2); sum += n * (n + 1) / 2; }
4번
getch() => _getch()로 변경해야 오류안나옴
#include <stdio.h> #include <stdlib.h> #include <conio.h> #define PASS 1 #define FAIL 0 void display_menu(); int check_PW(); void check_balance(int balance); int deposit(int balance); int withdraw(int balance); int main() { int service, balance = 0; printf("우리 시스템을 방문해 주셔서 감사합니다."); do { display_menu(); printf("원하는 서비스를 선택하세요. "); scanf_s("%d", &service); switch (service) { case 1:check_balance(balance); break; case 2: balance = deposit(balance); break; case 3: balance = withdraw(balance); break; case 4:exit(0); } printf("\n계속 서비스를 원하시면 아무키나 누르세요."); _getch(); system("cls"); } while (service != 4); return 0; } void check_balance(int balance) { if (check_PW() == PASS) printf("\n현재 잔액: %d원 \n", balance); } int deposit(int balance) { int amount; printf("\n입금하실 금액은? "); scanf_s("%d", &amount); balance += amount; printf("\n입금 후 현재 잔액: %d원\n", balance); return balance; } int withdraw(int balance) { int amount; if (check_PW() == PASS) { printf("출금하실 금액은? "); scanf_s("%d", &amount); if (balance < amount) printf("\n잔액이 부족합니다. 현재 잔액 %d원 \n", balance); else { balance -= amount; printf("\n출금 후 현재 잔액: %d원 \n", balance); } } return balance; } int check_PW() { static int count = 0; int system_PW = 1111; int limit = 3; int input_PW; printf("\n시스템 비밀번호를 입력하세요."); scanf_s("%d", &input_PW); if (input_PW == system_PW) return PASS; else { count++; if (count == limit) { printf("비밀번호 오류 3회 발생! \n"); printf("신분증을 가지고 서비스센터를 방문하세요. \n"); exit(0); } else { printf("비밀번호가 틀렸습니다. 총 %d회 오류!\n", count); return FAIL; } } } void display_menu() { printf("\n\n"); printf("======================\n"); printf("== 1. 잔액 조회 ==\n"); printf("== 2. 입금 ==\n"); printf("== 3. 출금 ==\n"); printf("== 4. 그만하기 ==\n"); printf("======================\n"); }
5번
getch() => _getch()로 변경해야 오류안나옴
system("cls")로 cmd 화면을 지워줌
#include <stdio.h> #include <stdlib.h> #include <conio.h> #define N 6 void menu(); void order(); void check(); char name[N][7] = { "", "노트", "연필","지우개","자","볼펜" }; int unit_cost[N] = { 0,1000,500,300,800,1500 }; int number[N] = { 0 }; int main() { int x; do { menu(); printf("원하는 서비스를 선택하세요. "); scanf_s("%d", &x); switch (x) { case 1:order(); break; case 2:check(); break; case 3:exit(0); } printf("\n계속 서비스를 원하시면 아무키나 누르세요."); _getch(); system("cls"); } while (x != 3); return 0; } void menu() { printf("환영합니다.\n"); printf("=======================\n"); printf("== 1. 상품 주문하기 ==\n"); printf("== 2. 주문서 확인하기==\n"); printf("== 3. 종료하기 ==\n"); printf("=======================\n"); } void order() { int a, b; system("cls"); printf(">> 상품 주문 서비스입니다.\n"); printf("==========================\n"); printf(" 1. 노트 1000\n"); printf(" 2. 연필 500\n"); printf(" 3. 지우개 300\n"); printf(" 4. 자 800\n"); printf(" 5. 볼펜 1500\n"); printf("=========================-\n"); printf("원하는 상품의 번호는? "); scanf_s("%d", &a); printf("%s을(를) 주문할 개수는? ", name[a]); scanf_s("%d", &b); number[a] += b; printf("\n\n 주문하신 %s %d개는 총 %d원입니다.\n", name[a], b, unit_cost[a] * b); } void check() { int total = 0; system("cls"); printf(" 상품 주문 내역서\n"); printf("========================\n"); printf(" 상품명 개수 가격\n"); printf("------------------------\n"); for (int i = 1; i < 6; i++) if (number[i] != 0) { printf(" %s %3d %d\n", name[i], number[i], unit_cost[i] * number[i]); total += unit_cost[i] * number[i]; } printf("========================\n"); printf(" 총액 %7d원\n",total); }
반응형'학교 수업 > 1-1, 1-2 코딩 기초 (파이썬, C)' 카테고리의 다른 글
[C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 11주차 (0) 2020.11.10 [C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 10주차 (0) 2020.11.03 [C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 7주차 (0) 2020.10.12 [C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 6주차 (0) 2020.10.05 [C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 5주차 (1) 2020.09.28