반응형
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
반응형
'공부 > 문제답안' 카테고리의 다른 글
뇌를 자극하는 C++ Exercise 12-2 답안 (0) | 2016.10.27 |
---|---|
[두들낙서] 구조체를 사용하여 x값과 y값을 교환하는 함수를 작성 예제 (0) | 2016.10.23 |
[두들낙서] 문자열을 매개변수로 받아 그 문자열에서 공백을 제거하여 출력하는 함수 작성 예제 (0) | 2016.10.22 |
[두들낙서] 정수 하나를 매개변수로 받아 그 수가 짝수이면 0, 홀수이면 1을 반환하는 함수 예제 (0) | 2016.10.22 |
뇌를 자극하는 C++ Exercise 11-2 답안 (0) | 2016.10.09 |