강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

eagle1129님의 프로필 이미지
eagle1129

작성한 질문수

문제로 배우는 C언어

배열의 회전

질문 드립니다!

작성

·

183

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]번 값은 사라져버립니다.

eagle1129님의 프로필 이미지
eagle1129

작성한 질문수

질문하기