PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2016/10/01 14:36:47
Name 안할란다
Subject [질문] if와 switch문을쓰는 c코딩문제질문입니다.
학교과제문제인데요, 맞는거 같은데 자꾸 오류가 나서 질문드립니다.

자동차 모델 년도와 무게에 따라 weight class가 결정되며 weight class에 따라 아래와 같이 자동차 세가 결정된다.(if문과 switch문사용)

1.        User 로부터 model year와 weight를 입력 받는다.
2.        입력 받은 정보에 따른 weight class를 계산한다..(if문)
3.        2.에서 계산된 class에 따른 fee계산(switch문 사용)
그래서  코딩을 했는데
int main(int argc, char *argv[]) {
        
        float modelyear, weight, fee;
        int weightclass;
        printf("model year와 weight 입력n");
        scanf("%f%f",&modelyear,&weight);
        if(modelyear<=2009&&weight<400)
        weightclass=1;
        else if(modelyear<=2009&&400<=weight<500)
        weightclass=2;
        else if(modelyear<=2009&&weight>=500)
        weightclass=3;
        else if(2009<modelyear<=2014&&weight<400)
        weightclass=4;
        else if(2009<modelyear<=2014&&400<=weight<500)
        weightclass=5;
        else if(2009<modelyear<=2014&&weight>=500)
        weightclass=6;
        else if(modelyear>=2015&&weight<450)
        weightclass=7;
        else if(modelyear>=2015&&weight>=450)
        weightclass=8;
        
        switch(weightclass)
           {case 1:fee=45000;printf("model year weight weight class feen==============================n%f년%fkg%d%f",modelyear, weight, weightclass, feen);break;
                case 2 : fee=55000;
                printf("model yeartweighttweight classtfeen==============================n%f년t%fkgt%dt%f원n",modelyear, weight, weightclass, feen);break;
                case 3 : fee=70000;
                printf("model yeartweighttweight classtfeen==============================n%f년t%fkgt%dt%f원n",modelyear, weight, weightclass, feen);break;
                case 4 : fee=80000;
                printf("model yeartweighttweight classtfeen==============================n%f년t%fkgt%dt%f원n",modelyear, weight, weightclass, feen);break;
                case 5 : fee=90000;
                printf("model yeartweighttweight classtfeen==============================n%f년t%fkgt%dt%f원n",modelyear, weight, weightclass, feen);break;
                case 6 : fee=105000;
                printf("model yeartweighttweight classtfeen==============================n%f년t%fkgt%dt%f원n",modelyear, weight, weightclass, feen);break;
                case 7 : fee=120000;
                printf("model yeartweighttweight classtfeen==============================n%f년t%fkgt%dt%f원n",modelyear, weight, weightclass, feen);break;
                case 8 : fee=150000;
                printf("model yeartweighttweight classtfeen==============================n%f년t%fkgt%dt%f원n",modelyear, weight, weightclass, feen);break;
                default: break;
        
        
        
        }
        
        return 0;
}
이렇게하니 switch문있는 줄에서 모든 프린트문에 stray''in progam, expected')' before n 이라는 에러가 나와서 검색해서 알아보니 어딘가 공백이 있으면 안된다는데 도무지 모르겠네요.

답변 미리 감사드립니다!

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
16/10/01 14:46
수정 아이콘
문법 자체를 많이틀리셨네요

400<=weight<500

--> 400<=weight && weight <500 이렇게 하셔야해요
안할란다
16/10/01 15:07
수정 아이콘
앗감사합니다!
16/10/01 14:47
수정 아이콘
변수명도 feen --> fee

비주얼키시면 빨간색뜨는게 문법오류에요 수정해보세요
Miyun_86
16/10/01 14:49
수정 아이콘
아마 그건 이스케이프문자가 짤려서 복붙되어서 그런거 같아요(...)
지금 여기서 리플 수정하면서 보니 이스케이프문자가 짤리네요, 자동으로.

- 사실 그거 아니면 해석이 안되더라구요...
16/10/01 15:08
수정 아이콘
printf문 마지막 인자로 feen이 넘어가기 때문에..
만약 거기에 이스케이프 문자가 있다면 문제네요
Miyun_86
16/10/01 14:51
수정 아이콘
일단 Visual Studio로 컴파일하는거면 에러 메세지 더블크릭하면 바로 에러라인으로 가 줘서 바로 확인 가능할텐데요...

에러 메세지가 전체가 있는 것도 아니고 일단 위에서 iMac님이 말씀하신 문법이 통과되었다는 것도 이상하고... 직접 돌려보면 알꺼 같긴 한데 현재 PC에는 개발툴을 안 깔아놨군요;;
안할란다
16/10/01 15:07
수정 아이콘
Dev c++쓰고 있구요 밑에 에러라인이
31 3 [Error] stray '' in program
31 149 [Error] expected ')' before 'n'
switch문 아래 모든 print문에서 같은 오류를 표시합니다.
AirQuick
16/10/01 15:31
수정 아이콘
틀린 문법 좀 고치니까 잘 돌아가네요.
switch문에 있는 printf문의 경우 모두 동일한 출력을 하니까 전부 지우고 switch문 밖에 하나만 쓰는게 보기 더 좋습니다.
만약 조건에 맞는 case가 없을 때는 출력을 하면 안 되는 경우라면 fee = 0을 기본값으로 설정해 준 다음 if문 fee != 0일때만 출력하도록 예외처리를 하면 되구요.
그리고 modelyear, weight, fee는 전부 정수값만 들어가는데 굳이 float를 쓸 이유는 없어보입니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
90858 [질문] 이종범, 이치로도 견제사나 견제구-런다운 걸린 적 있나요? 있긴 있겠..죠? [5] 시나브로3825 16/10/02 3825
90857 [질문] . [4] 삭제됨2224 16/10/02 2224
90856 [질문] 지난 6월 2일 잠실구장에서 있었던 폭행사태의 진행내용 아시는 분 계신가요..? [1] 여신유1664 16/10/02 1664
90855 [질문] 롤용도로 모니터 구입에 관한 조언 부탁드립니다. [1] changeable2147 16/10/02 2147
90854 [질문] 이런 걸로도 고소할 수 있나요? [게임] [10] 물리쟁이3032 16/10/02 3032
90853 [질문] 예전에 있었던 일인데 저랑 상관없는 직책 높은 분 응대 [22] 삭제됨3922 16/10/02 3922
90852 [질문] 임신 8주차 콘서트 관람 [4] 대장나무3464 16/10/02 3464
90851 [질문] 알뜰폰 번호이동 질문 [2] DogSound-_-*3390 16/10/02 3390
90850 [질문] 종로 3가쪽 맛좋고 분위기 좋은 파전집 있나요? [1] 김여유2781 16/10/02 2781
90849 [질문] 오늘 롯데월드? 또는 오늘 서울나들이 갈만한곳 [3] 초롱비2570 16/10/02 2570
90848 [질문] 홍콩 여행코스 추천좀 부탁드립니다. [3] 뿌지직2601 16/10/02 2601
90847 [질문] 조립PC 견적 문의입니다. [5] 이것봐라2331 16/10/02 2331
90846 [질문] 요새 젊은 축구 선수들 중에 흔히 크랙으로 활약할 재능은 누가 있을까요? [12] LG.33.박용택4290 16/10/02 4290
90845 [질문] 컴퓨터를 인터넷으로 구매하려고 하는데요. [2] 하심군2641 16/10/02 2641
90844 [질문] 부품사서 자전거가게 가면 조립해주나요? [3] 신입사원2764 16/10/02 2764
90843 [질문] 하스스톤 워3 돌릴 컴퓨터 견적 질문입니다. [3] Waldstein2828 16/10/02 2828
90842 [질문] 스마트폰 추천 부탁드립니다. [2] 카페알파1625 16/10/02 1625
90841 [질문] 고지방 저탄수 식단에 참치(통조림)는 어떤가요? [8] 군자구제기4942 16/10/02 4942
90840 [질문] 수학 벡터(신장)문제 질문입니다. [6] 티어루프2356 16/10/02 2356
90839 [질문] 하남 근방 데이트 코스 질문 입니다. [8] 차차웅5337 16/10/02 5337
90838 [질문] 쿠팡 면접은 어떻게 준비해야하나요? [8] 삭제됨4563 16/10/02 4563
90836 [질문] 컴퓨터 다운현상 질문입니다 [8] 스키피오2790 16/10/02 2790
90835 [질문] 핵보유국의 지위를 가질 수 있는 권리? [5] 포프의대모험2837 16/10/02 2837
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로