2017-12-07 23 views
0

좋아요,이 질문은 바보 같은 질문이므로 회 돌이와 관련되어 있지만이 점을 이해하는 데 어려움이 있습니다. 문맥을 지우기 위해 루프 프로그램을위한 별도의 리버스를 만들려고했지만 여전히 문제가 있습니다.이진 변환 프로그램에서 십진수로 한 줄을 이해하는 데 어려움을 겪고 있습니다.

그래서 여기 내 코드 이제

#include<iostream> 
using namespace std; 
int main() 
{ 
    int i,d,j=0,b[100]; 
    cin>>d; 
    while(d>0) 
    { 
     b[j]=d%2; 
     d=d/2; 
     j++; 
    } 
    //cout<<j; 
    for(i=j-1;i>=0;i--) 
    { 
     cout<<b[i]; 
    } 
} 

이다, 나에게 위해 루프를 설명해주십시오. 왜 그것이 i=j-1;i>=0;i--이어야 하는가? i=j;i>0;i-- 일 수 없습니까?

I가 나는 그때 69463481101101

수신하고 i=j;i>=0;i--를 사용하고있는 경우가 출력 된 I 6946348110110를 수신하고 입력으로 109을주고 i=j;i>0;i-- 사용하고 초보자이다. 도와주세요!

답변

0

마지막 루프가 실행 '하면서'b[j]=d%2는 이제 생각한, 위치 4에서의 값을 추가한다 (b [0, 1, 2, 3, 4 ). 'for'루프를 시작하면 탭이 4가되지만 'j'값이 5가됩니다. 변수 'j'는 여전히 값이 1 인 루프를 끝내기 위해 1 씩 증가합니다. i=j-1을 사용하는 유틸리티를 설명합니다. 이제 루프가 정확하지 않은 [5,4,3,2,1] 대신 [4,3,2,1,0] 값을 확인합니다.