<div><br></div> <div>포인터 쓰지 않고 배열만으로 만들어 봤습니다.</div> <div><br></div> <div>목표는</div> <div>8을 입력시 1000</div> <div>17을 입력시, 1 0001</div> <div><br></div> <div>이렇게 4칸씩 잘라주는 코드</div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">#include<stdio.h></span></div> <div> <div>int main(){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int tenten[64]; //망할 무조건 크기를 지정 해야 한다. </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int bi[64];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i=0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int j=0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int b=0; //4자리씩 끊기 위한 코드. </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int bp; //앞자리 끊기</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("Put your Decimal number. \n");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>scanf("%d",&tenten[i]);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i=0;i<=j;i++){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>bi[i]=tenten[i]%2;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>tenten[i+1]=tenten[i]/2;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(!(tenten[i+1]==0)) //tenten 에 남은 수가 있을때 까진 j++함. </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>j++;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>bp=(j+1)%4; //j+1 인 이유는 잘 모르겠음. 연산 착오일 수도 있음. </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>b+=(4-bp); //표현될 마지막 공백을 앞으로 끌어주기 위한 코드. 1110 11 이 11 1011 로 됨.</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(b==4)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>b=0; // 솔직히 이 부분 조금 효율적이지 못함. 만약, 자릿수가 딱 맞을 시 띄우는걸 무시하자는 취지에서 한 것인데, 더 좋은 방법이 있을 듯. </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span> </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(;j>=0;j--){ //초기조건이 필요 없음. <span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if (b>3){ //4자리씩 계산 </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf(" ");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>b=0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("%d",bi[j]);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>b++;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;</div> <div>}</div> <div><br></div> <div>// 성공 했다. 다음번에는 앞자리를 띄어주는 함수 대신, 0으로 채워주는 함수를 만들어 볼 생각. </div></div> <div> </div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.