프로그래밍

형들 C프 질문좀하자

#include <stdio.h>

int n1, n2, result;
char conti;
void printMenu()
{
    printf("====================\n");
    printf("MENU\n");
    printf("====================\n");
    printf("1. 덧셈\n");
    printf("2. 뺄셈\n");
    printf("3. 곱셈\n");
    printf("4. 나눗셈\n");
    printf("5. 나머지\n");

}

int getMenu()
{
    int choice;
    printf("원하는 메뉴를 선택하시오(1-5): ");
    scanf("%d", &choice);
    return choice;
}

void get_integer()
{
    scanf("%d %d", &n1, &n2);
}

int plus()
{
    return (n1 + n2);
}

int minus()
{
    return (n1 - n2);
}

int multiply()
{
    return (n1 * n2);
}

int divide()
{
    return (n1 / n2);
}

int rest()
{
    return (n1 % n2);
}

void showResult()
{
    printf("연산결과: %d\n", result);
    conti = 'n';
}

int main()
{
    conti = 'y'; 
    while (1) 
    {
        if (conti == 'y') 
        {
            printMenu();
            int ch = getMenu();
            printf("숫자 2개를 입력하시오: ");
            get_integer();
            switch (ch)
            {
            case 1:
                result = plus();
                showResult();
                break;
            case 2:
                result = minus();
                showResult();
                break;
            case 3:
                result = multiply();
                showResult();
                break;
            case 4:
                result = divide();
                showResult();
                break;
            case 5:
                result = rest();
                showResult();
                break;
            }
        }
        else
        {
            printf("계속하려면 'y'를 입력하시오: ");
            scanf("%c", &conti);
        }
    }
    return 0;
}

 

여기서 y 말고 다른 값(아무거나) 입력하면 종료하는거 어떻게 해?

함수 많이 쓴거는 일부러 그런거임

7개의 댓글

[삭제 되었습니다]
@개밥멀리던지기대회

그러네 while 왜 저렇게 썻지 ㅋㅋㅋ 아오 반성해야지

0

입력을 else문 안에서 받으면 conti 값이 안바뀌잖아

0
@넥슨은다람쥐를뿌려라

전역변수라 값은 바뀌는거 아니에요?

0
@지나가던개붕이

아 값을 다른 함수에서 바꿔놨네

그럼 while 에 조건을 주거나 break 로 탈출시키거나

0
2020.05.25

1. printMenu 랑 getMenu 나눈 이유가 뭐임? printMenu가 printf 밖에 없는데, 나라면 두개 합침

 

 

2. Global variables을 쓸때 C++에서 값을 안넣고 선언하는건 좋지않은 습관임

왜그런지 보려면 값 아무것도 안넣은상태에서 저 변수들에 뭐가 들어있는지 확인해보면 알수있음

 

 

3. main()안에서 conti = 'y' 이부분도 2번이랑 같이 그냥 처음부터 선언하셈

 

 

4. while 조건이랑 if조건이랑 합치셈

y를 썼을때만 whileloop를 나가게 하려면 조건부를 conti != 'y'

 

님이 말한데로 y말고 다른값넣었을때 while 나가게하려면 조건부를 conti == 'y'

 

 

5. getMenu()안에 scanf에 들어가는값이 int인지 확실하게하고

 

 

6. 이해가 안가는게 getMenu()에서는 local variable로 scanf 읽어서 return 시켰는데

 

왜 get_integer()때는 global variables을 이용해서 읽는거임?

 

둘중에 하나로 통일하는게 낫지않나 싶음

 

그리고 5번이랑 똑같이 사용자가 int값을 제대로 쳤는지 확인해야함

 

 

7. switch구문안에 case는 다 공통적으로 showResult()를 불러오니까 계속 똑같이 쓰는것보다는 switch 밖에 showResult() 하나만 놓는게 좋을듯

 

 

8. divide()의 왜 return 이 int로 정의되어있음? 5나누기 2는 2.5지 2가 아님

 

float이나 double로 return 시키고 n1 이랑 n2 도 cast 똑같이 해주고

 

 

9. showResult()안에 conti = 'n'는 무슨의미로 있는거임?

 

만약에 conti 안의 값을 리셋시켜서 loop를 계속돌리는 용도라면

 

그럴필요 없음 scanf 만나는 순간에 콘솔은 멈춰있으니까

 

그리고 똑같이 conti안에 scanf로 넣을때 사용자가 char를 넣는지 확인하고

 

 

 

즐거운 c++ 되길

 

3
@흑기

피드백 고맙슴니다 엉님 하나 하나 찬찬히 읽어보면서 곱씹어 보겠습니다 헤헤

사랑해요 ㅁ + 한자 하트

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180588 [모바일] 이거 삼전케어플러스로 넘어가야할정도임? 마법부오러사무국장 0 2 시간 전 75
180587 [컴퓨터] 모니터 이상함 띵똥이 0 2 시간 전 31
180586 [모바일] A25가 그렇게 별로임?? 4 울그락푸르락 0 2 시간 전 56
180585 [컴퓨터] 독거미 도착함 9 쿠쿠N취킨 0 3 시간 전 159
180584 [잡담] 님들도 데스크테리어 해보쉴? 15 냐하하하하 0 5 시간 전 199
180583 [잡담] 논 rgb 구성으로 맞췄더니 뭔가 심심해서 2 전기모기채는신이야 0 5 시간 전 65
180582 [컴퓨터] 이거 사운드카드 죽은거냐? 3 와신상담 0 8 시간 전 113
180581 [컴퓨터] m.2케이스에 넣어서 sd카드 대신에 사용해도 괜찮아?? 6 코싸멘뚜 0 8 시간 전 148
180580 [잡담] 플스5 아무거나 사면됨?? 6 년째재수강 0 8 시간 전 127
180579 [모바일] 24 울트라 5G 512기가는 재고가 아예없네 3 마법부오러사무국장 0 9 시간 전 184
180578 [컴퓨터] 아니 바탕화면 창에 ㅈ 같은 이거 도대체 뭐라고 해요? 9 사슴만지게해줘 0 10 시간 전 228
180577 [모바일] 갤럭시 처음 써보는데 문자알림 내용표시 어떻게 해??? 17 bulusuky 1 10 시간 전 100
180576 [프로그래밍] 엥 구글 플러터 유기각 재는거임?? 4 최수연 0 10 시간 전 157
180575 [모바일] 모바일 크롬 탭창 표정 바뀜 ㅎㄷㄷ 1 살에눈나와어른의... 1 11 시간 전 161
180574 [모바일] 폰 충전기 발열이 넘 심한데 바꿔야 하나 2 우히히힣 0 14 시간 전 132
180573 [컴퓨터] i9 13900k 쓰고있는데 질문! 3 래더넉 0 17 시간 전 164
180572 [컴퓨터] 키보드 -> 방향키가 눌릴때 삐걱거림 4 뮤잉운동케겔운동... 0 19 시간 전 74
180571 [모바일] 기기변경할때 유심을 같은거쓰면 정보 그대로 보존됨? 2 마법부오러사무국장 0 20 시간 전 98
180570 [잡담] 결국 레이니 75 구매함 5 이제는끝내자 0 20 시간 전 239
180569 [컴퓨터] 이륙 허가를 요청한다! 15 와플맛 0 21 시간 전 163