<div><br></div> <div>안녕하세요, 서버관리쪽에서 일하는 서른살 IT뉴비입니다.</div> <div>개발쪽...이라고 하면 아직은 잘 모르겠고 단지 프로그래밍 공부가 재밌어서</div> <div>독학을 하고 있습니다.</div> <div><br></div> <div>C언어 책 하나 사서 공부하다가 프로그래밍의 핵심은 알고리즘이라고 하길래</div> <div>예전에 정보처리기사 공부할 때 배웠던 알고리즘을 대충 프로그램으로 구현해보고 있습니다.</div> <div>(학원이나 학교 숙제 문제가 아닙니다 ㅠㅠ 순수하게 독학 중 모르는 부분 질문.)</div> <div><br></div> <div>검색은 해보았지만 검색어를 정확하게 뭐라고 해야될지 몰라서 깊게는 못했습니다...</div> <div> <div>첫글부터 질문글이라 죄송합니다.</div></div> <div><br></div> <div>서두는 이쯤하고...</div> <div><br></div> <div>구현하려는 알고리즘은 </div> <div>"입력한 10개의 숫자 중 특정 수(여기선 7)에서 가장 가까운 수 찾기"</div> <div>입니다.</div> <div><br></div> <div>알고리즘 자체는 아래의 소스로 만들어서 잘 동작하는 것을 확인했는데</div> <div>혹시나 해서 확인해본 결과 6과 8. 즉 같은 간격(?)을 가진 숫자 2개를</div> <div>뽑아내려고 하니까 이상한 값이 출력되더라구요.</div> <div><br></div> <div>변수 하나 더 주고 if문으로 만약 min=num2[i] 면 해당 변수에 넣으라고 해서</div> <div>출력해도 안나오구요...</div> <div><br></div> <div>되도록 스스로 해결해보려고 했는데 으으... 힌트라도 얻고 싶어서 글을 올려봅니다.</div> <div><br></div> <div> <div>#include <stdio.h></div> <div><br></div> <div> int main(void){</div> <div>int max,min,min_X,min_Y,i,num2[10];</div> <div>int num[10]; <u><i>// 사용할 변수 max는 가장 먼 값, min은 가장 가까운 값, min_X는 가장 가까운 값이 몇번째인지 담아둘 값, num2는 각 숫자별 간격 담아둘 배열</i></u></div> <div><br></div> <div>for(i=0;i<10;i++){</div> <div> printf("num[%d] ->> ",i);</div> <div> scanf("%d", &num[i]);</div> <div>}</div> <div>printf("num ->>\n ");<u><i>//숫자 10개 입력 받습니다.</i></u></div> <div>max=num[0];</div> <div>min=num[0];<u><i>//초기화 해주지 않으면 이상한 값을 출력하기 때문에 배열 안에 있는 숫자로 초기화</i></u></div> <div>for(i=0;i<10;i++){</div> <div>printf("num[%d]=%d\n ",i, num[i]);</div> <div>}</div> <div>for(i=0;i<10;i++){</div> <div> if(num[i]>7){</div> <div> num2[i]=num[i]-7;}</div> <div> else{</div> <div> num2[i]=7-num[i];</div> <div> }</div> <div>}<u><i>//입력 받은 10개의 숫자에서 목적이 되는 숫자 만큼 빼줍니다.</i></u></div> <div>for(i=0;i<10;i++){</div> <div> if(max<num2[i]){</div> <div> max=num2[i];}</div> <div> if(min>num2[i]){</div> <div> min=num2[i];</div> <div> min_X=i;</div> <div> }</div> <div> }<u><i>//빼준 숫자가 각 숫자 별 '간격'이므로 간격 중에 가장 먼 수와 가장 가까운 수를 나타냅니다.</i></u></div> <div>printf("\n");</div> <div>printf("max=%d\n",max);</div> <div>printf("min=%d\n",min);</div> <div>printf("가장 가까운 수 => num[%d]번째\n",min_X);</div> <div>return 0;</div> <div>}</div></div> <div><br></div> <div><br></div> <div><br></div>
꼬릿말이 뭐죵. 먹는건가. 우걱우걱
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.