본문 바로가기
공부/문제답안

뇌를 자극하는 C++ 비타민퀴즈(Vitamin Quiz) 변수 i 없이 탐색할 수 없을까? 답안

반응형

Vitamin Quiz

변수 i 없이 탐색할 수 없을까?

정수 i를 사용하지 않고 포인터 p만 사용해서 배열을 탐색할 수 있게 수정해달라는 요청이 들어왔다. 앞의 예제를 수정해서 배열의 모든 원소의 값을 출력하는 프로그램을 작성해보자. 배열 nArray와 포인터 p 외에 그 어떤 변수를 정의해서도 안 된다.


조건

배열 nArray를 사용하라

포인터 p를 사용하라

위 조건 외의 변수는 허용되지 않는다.


Vitamin Quiz 소스   * 필자 작성

설명


다른 변수를 따로 사용을 못하기 때문에 또 다른 반복문인 while문을 사용하였다.

본 교제 중 265쪽 [예제 12-4] 또는 [예제 12-5]를 참고하여 작성하라고 문제에 제시되어있습니다.

따라서 for문을 while문으로 바꾼 것입니다. 범위가 p가 &nArray 넘으면 안되기 때문에 p != &nArray[10]을 사용했습니다.

결론적으로 for문을 while문으로 바꾼 것입니다.


for(int i = 0; i < 10; i++)

{

nArray[i] = i;

}



while(p != &nArray[10])

{

*p = p - &nArray[0]; // 첫 번째 원소와의 차이를 통해 인덱스 구하기

++p;        // 다음 원소 가르키기

}


문제 출처

뇌를 자극하는 C++ 프로그래밍 12장 배열과 구조체와 포인터 - 복합적인 방법으로 정보를 다루는 법 pp.265 Vitamin Quiz


반응형