std::cout << " 첫번째 수 입력: ";
while(input=getchar() != '\n') // 첫번째 수를 입력받는 곳
{
loop++;
if(loop>4) // 자리수 맞춰 방에 차례차례 저장
{
loop=1;
*(temp+i)=x;
i++;
x=0;
}
x=x*10+(input-48); // 입력 받은것을 숫자로해서 자리수 맞춘다.
}
if(loop>1) // 마지막 입력받은수를 저장
*(temp+i) = x;
else // 마지막에 없으면 방 공간도 하나를 감소해야 한다.
i--;
k = i; // 방 수를 임시 변수에 저장하여 사용
switch(loop) // 오른쪽 부터 채우기 위해 사용
{
case 2: // 마지막 수가 한자리면 오른쪽으로 세자리씩 더 옮기기 위함
while(k)
{
*(temp+k) = (*(temp+k-1) % 1000)*10 + *(temp+k);
*(temp+k-1) = (*(temp+k-1) / 1000);
k--;
}
case 3: // 마지막 수가 두자리면 오른쪽으로 두자리씩 더 옮기기 위함
while(k)
{
*(temp+k) = (*(temp+k-1) % 100)*100 + *(temp+k);
*(temp+k-1) = (*(temp+k-1) / 100);
k--;
}
case 4: // 마지막 수가 세자리면 오른쪽으로 한자리씩 더 옮기기 위함
while(k)
{
*(temp+k) = (*(temp+k-1) % 10)*1000+ *(temp+k);
*(temp+k-1) = (*(temp+k-1) / 10);
k--;
}
}
i++; // 더하기를 할때 자리 올림을 위해 맨 앞에 0으로 한다.
*s1=0; // 맨 앞방을 0으로 하기 위함
for(d=1; d<=i; d++) // 다음방부터 첫번째 수 입력할 방에 저장
*(s1+d) = *(temp+d-1);
std::cout << std::endl;
x=0; loop=0; // 두번째수 입력받기위해 초기화! 위와 같으므로 설명은 안 하겠습니다.
printf(" 두번째 수 입력: ");
while(input=getchar() !='\n')
{
loop++;
if(loop>4)
{
loop=1;
*(temp+j)=x;
j++;
x=0;
}
x=x*10+(input-48);
}
if(loop>1)
*(temp+j)=x;
else
j--;
k=j;
switch(loop)
{
case 2:
while(k)
{
*(temp+k) = (*(temp+k-1) % 1000)*10 + *(temp+k);
*(temp+k-1) = (*(temp+k-1) / 1000);
k--;
}
case 3:
while(k)
{
*(temp+k) = (*(temp+k-1) % 100)*100 + *(temp+k);
*(temp+k-1) = (*(temp+k-1) / 100);
k--;
}
case 4:
while(k)
{
*(temp+k) = (*(temp+k-1) % 10)*1000+ *(temp+k);
*(temp+k-1) = (*(temp+k-1) / 10);
k--;
}
}
t = i - j; // 방수를 맞추기위해 수1에서 수2 방수를 빼서 남은 앞에 방은 0으로 초기화
for(d=0; d<t; d++) // 앞 방을 0으로 초기화
*(s2+d) = 0;
for(d=t; d<=i; d++) // 그 이후 방에 입력받은 수2를 차례로 저장
*(s2+d) = *(temp+d-t);
std::cout << std::endl;
첫번째 와일 문에서 멈춰서 데이터를 받아야 되는데
바로 2번째 숫자받기로 넘어가지네여 코드적으로는 오류는 없는데
어디가 문젠지 모르겟음여 ㅜㅜ 좀 알려주세용
댓글 0