안녕하세요. 프로그래밍 3일차 뉴비입니다. 공부 중에 문제가 생겨 도움을 구하고자 합니다. <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">제품의 품명, 단가, 수량 등을 입력 받아 합계를 계산하고, 부가세 10%를 가산한 총액을 계산하는 프로그램을 만들고자 합니다.</span></div> <div>교재에는 다음과 같은 코드가 예시로 주어졌습니다.</div> <div><br></div> <div><br></div> <div><div> <div><font size="2">#include <stdio.h></font></div> <div><font size="2">#include <string.h></font></div> <div><font size="2">#include <malloc.h></font></div> <div><font size="2"><br></font></div> <div><font size="2"><br></font></div> <div><font size="2">#define MAX_NAME 50</font></div> <div><font size="2"><br></font></div> <div><font size="2"><br></font></div> <div><font size="2">struct Item</font></div> <div><font size="2">{</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>char name[MAX_NAME];<span class="Apple-tab-span" style="white-space:pre;"> </span>//품명 </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>int price;<span class="Apple-tab-span" style="white-space:pre;"> </span>//단가 </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>int num;<span class="Apple-tab-span" style="white-space:pre;"> </span>//수량 </font></div> <div><font size="2">};</font></div> <div><font size="2"><br></font></div> <div><font size="2"><br></font></div> <div><font size="2">int main(void)</font></div> <div><font size="2">{</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>int i;</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>int count, sum=0, total;<span class="Apple-tab-span" style="white-space:pre;"> </span>//항목개수, 합계, 총액(부가세 포함) </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>struct Item *item=NULL;<span class="Apple-tab-span" style="white-space:pre;"> </span>//항목 </font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("항목의 개수를 입력하세요 : ");</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>scanf("%d", &count);<span class="Apple-tab-span" style="white-space:pre;"> </span>//항목개수 입력 </font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>item = malloc(count*sizeof(item));<span class="Apple-tab-span" style="white-space:pre;"> </span>//메모리 할당 </font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i=0; i<count; i++)</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>{</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("\n품명: ");</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>fgets(item[i].name, MAX_NAME-1, stdin); <span class="Apple-tab-span" style="white-space:pre;"> </span>//품명 입력 </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>item[i].name[strlen(item[i].name-1)]='\0';<span class="Apple-tab-span" style="white-space:pre;"> </span>//'\n' 제거<span class="Apple-tab-span" style="white-space:pre;"> </span></font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("단가: ");</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>scanf("%d", &item[i].price);<span class="Apple-tab-span" style="white-space:pre;"> </span>//단가 입력 </font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("수량: ");</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>scanf("%d", &item[i].num);<span class="Apple-tab-span" style="white-space:pre;"> </span>//수량 입력<span class="Apple-tab-span" style="white-space:pre;"> </span> </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("-----------------------------------------\n");</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("품명\t단가\t수량\n");</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("-----------------------------------------\n");</font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i=0; i<count; i++) </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>{</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("%s\t", item[i].name);<span class="Apple-tab-span" style="white-space:pre;"> </span>//품명 출력 </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("%d\t", item[i].price);<span class="Apple-tab-span" style="white-space:pre;"> </span>//단가 출력 </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("%d\n", item[i].num);<span class="Apple-tab-span" style="white-space:pre;"> </span>//수량 출력 </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>sum += (item[i].price*item[i].num);<span class="Apple-tab-span" style="white-space:pre;"> </span>//합계 계산 </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>}</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>free(item);<span class="Apple-tab-span" style="white-space:pre;"> </span>//메모리 반납 </font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>total = (int)(sum*1.1);<span class="Apple-tab-span" style="white-space:pre;"> </span>//부가세 포함금액 </font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("-----------------------------------------\n");</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("합게 : %d\n", sum);</font></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("총액 : %d (부가세 10%% 포함)\n", total);</font></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><span class="Apple-tab-span" style="white-space:pre;"><font size="2"> </font></span></div> <div><font size="2"><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;</font></div> <div><font size="2">}</font></div></div> <div><br></div></div> <div>이 코드를 그대로 옮겨 실행하였을 때 문자열(품명)을 입력하는 부분에서 다음과 같이 문자열이 입력되지 않고, 사진에 나온 부분까지만 출력된 뒤 프로그램이 오류를 일으키며 종료됩니다.</div> <div><br><div style="text-align:left;"><div style="text-align:center;"><img src="http://thimg.todayhumor.co.kr/upfile/201608/1470663806be11b38edeab49ad831cb9ce3ef55591__mn195042__w680__h444__f30876__Ym201608.jpg" width="680" height="444" alt="1.JPG" style="border:none;" filesize="30876"></div> <div style="text-align:left;"> <div style="text-align:center;"><img src="http://thimg.todayhumor.co.kr/upfile/201608/14706638877c9f1a32510646b5868dcaed92f30816__mn195042__w678__h443__f32663__Ym201608.jpg" width="678" height="443" alt="2.JPG" style="border:none;" filesize="32663"></div><br></div> <div style="text-align:left;">코드를 잘못 적었나 싶어 새로이 한 번 더 써봤지만 증상은 동일합니다.</div><br></div> <div style="text-align:left;">교재에 나온 그대로 적었는데 결과가 다르게 나오니 환장하겠네요. item에 문제가 있다고는 생각되는데 정확한 원인이 무엇인지도 모르겠어요 ㅠㅠ</div> <div style="text-align:left;"><br></div> <div style="text-align:left;">도움 좀 부탁드리겠습니다.</div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.