• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

질문 드립니다!

20.12.10 21:38 작성 조회수 86

0

#include<stdio.h>

int main(){

int arr[9],i,j,k,tmp;

for(i=0;i<=8;i++){

scanf("%d",&arr[i]);}

scanf("%d",&k);

 for(i=1;i<=k;i++){

  tmp=arr[0];

for(j=0;j<8;j++){

arr[j]=arr[j+1];}

arr[j]=tmp;

}

for(i=0;i<=8;i++){

printf("%d ",arr[i]);}

return 0;} 

의 식과

#include<stdio.h>

int main(){

int arr[9],i,j,k;

for(i=0;i<=8;i++){

scanf("%d",&arr[i]);}

scanf("%d",&k);

 for(i=1;i<=k;i++){

  

for(j=0;j<8;j++){

arr[j]=arr[j+1];}

arr[j]=arr[0];

}

for(i=0;i<=8;i++){

printf("%d ",arr[i]);}

return 0;}의 식이 왜 출력값이 다르게 나오는지 궁금합니다..

즉,왜 곧바로 arr[j]==arr[0]로 하면 나오는 출력값과  tmp를 만들어 tmp=arr[0]으로 잡고 arr[j]=tmp로 나오는 출력값이 다른지 궁금합니다

답변 1

답변을 작성해보세요.

0

안녕하세요^^

tmp에 arr[0]을 저장하지 않고 바로 arr[j]=arr[j+1] 해버리면 arr[0]번 값은 사라져버립니다.