배열 값을 바꾸는 프로그램 짜기

  안녕하세요..^^* 오늘은 배열 값을 바꾸는 프로그램을 한번 짜 보도록 하겠습니다. 배열은 같은 타입의 연속된 변수의 나열이라고 정의를 하죠. 예를 들면 a[3]==5이고 a[5]==7이면 이 두개를 바꿔치기 한다고 보시면 됩니다. 그럼 지금부터 시작을 해 보도록 할께요.



  자 여기서 저희는 아무 숫자 하나를 입력합니다. 7을 입력하고 아무거나 쳐 볼께요 3 2 3 4 5 6 7이겠죠. 그럼 다시 밑에 3을 입력합니다. 그럼 3은 앞에서부터 검색해서 3과 제일 뒤에 숫자를 바꿔치기 하는 프로그램입니다. 즉 순방향으로 검색해서 그 값의 색인을 찾고 그것을 제일 뒤에거랑 비교해서 그 값이 다르면 바꾸는 프로그램입니다. 만약 제일 뒤에 값이 7이 아니라 3이라면 6과 3을 바꿔서 6 2 3 4 5 3 3 이 되겠죠?



  이건 전체 소스코드입니다.



  이제 우리가 입력할 배열의 길이를 정하는 겁니다. for문을 해서 내가 5를 입력했다면 배열은 a[4]까지만 입력가능하게 만드는 것이죠.



  이부분이 가장 중요하다고 할 수 있겠는데요. i가 j보다 커 버린다면 이 배열의 값이 value와 다를 경우에 계속 돌아가게 되겠죠. 그러므로 i<=j라고 만들어 줘야 합니다. 그 다음에 i=0부터니까 순 방향으로 1씩 증가해서 값이 발견되면 그 값을 밖으로 꺼내고 a[j]가 value값이 아닌 것을 발견하면 그값을 밖으로 빼 내는 조건문이죠. 그 다음에 temp라는 것을 씁니다. temp를 a[i]에 저장하고 a[i]를 a[j]에 저장을 합니다. 그럼 a[i]는 a[j]에 저장이 되겠죠. 그 다음에 temp값을 a[j]에 저장을 시킨다면 끝나는 것이겠죠? 결국 앞에서 검색하여 a[i]가 value가 되는 값을 찾고 만약에 그 값이 역방향으로 검색해서 a[j]가 아닌 값이 나올때까지 검색하여 그것들을 바꿔치기한다고 보면 되겠죠??



  그 다음에 for문을 써서 그값들을 출력해 주는 일만 남았습니다.




  어떤가요?? 이해가 잘 가지 않나요?? 저도 배우는 입장이라 최대한 쉽게 설명했는데..ㅎㅎ ㅠㅠ 아무쪼록 잘 이해가 되었으면 좋겠네요. ㅎㅎ 그럼 오늘은 여기서 이만 물러나도록 하겠습니다.^^*

댓글

Designed by JB FACTORY