CS50_코칭스터디 팀미션(2주차)

Koohyeon·2021년 4월 1일
0

CS50

목록 보기
7/9
post-thumbnail
post-custom-banner

네이버 부스트코스에서 코칭스터디에 참여하며 제대로 풀지 못했던 팀미션을 다시 풀어보자!

문제 1 - 재고 관리 프로그램

#include <stdio.h>
#include <cs50.h>

int getOrder ();

int main () {
    int stock = 5;
    int price = 10000;
    float tax = 0.1;
    int order = getOrder();

    printf("주문건수: %d\n", order);
    printf("기존 재고량: %d\n", stock);
    printf("남은 재고량: %d\n", stock - order);
    printf("매출액(부가세포함): %.0f\n", order * (price + price * tax));
}

int getOrder () {
  int order;
  printf("주문 건 수를 입력하세요: ");
  scanf("%d", &order);
  return order;
}

아쉬운 점: 너무 미션에 충실했다. 다른 분들의 진짜 실제로 이용할 수 있을 법한 재고 관리 프로그램을 구현한 코드를 보고 놀랐다. 미션을 그냥 푼다고 생각하지말고 실제 문제를 해결해야한다고 생각하자. JavaScript로 다시 풀 때 더 예외사항을 생각하면서 풀어보자.

문제 2 - 예금의 만기 금액

#include <stdio.h>
#include <cs50.h>

int input ();

int main () {
    int saving = input();
    float interest = 0.012;

    printf("원금과 이자의 합계:%.0f", saving + saving * interest);
}

int input () {
    int saving;
    printf("목표 금액을 입력하세요!");
    scanf("%d", &saving);
    return saving;
}

아쉬운 점: 이렇게 구현할꺼면 더 간단하게 할 수도 있었다. 코드를 짜고 다시 보고 고치고 또 다시 보고 고쳐나가자.

문제3 - 해당 요일 메뉴 출력

#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <stdlib.h>

int main(void) {
    char *day = malloc(sizeof(char) * 10);
    char dayArr[7][10] = { "월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일" };
    char menuArr[7][20] = { "청국장", "비빔밥", "된장찌개", "칼국수", "냉면", "소불고기", "오삼불고기" };
    
    printf("오늘의 요일을 입력하세요: ");
    scanf("%s", day);
    
    for(int i = 0; i < 8; i++) {
     if (strcmp(day, dayArr[i]) == 0) {
        printf("오늘의 메뉴는 %s", menuArr[i]);
      };
    };
};

아쉬운 점: 입력값을 문자열포인터에 저장하려면 먼저 공간을 할당해야 한다는 것을 몰라서 계속 헤맸다. 문자열 배열 사용방법도 몰라서 요일과 해당메뉴를 2차원 배열로 만들어 구현하면 되겠구나했는데 아니었다. 아직 얼마나 부족한지 알게되었다. 더 열심히 공부하자.

post-custom-banner

0개의 댓글