viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1306968e3d8ca0e5f9ea78f5cc0818cc73740007f61906e4d1ced7cf2444f27d0a30b8d3cc71c92be7a7d2fb43b


프갤이 과제충들 싫어하는 것 아시지만


이대로 끄고 자기에 너무 찝찝해서 글 올려봅니다 ..


일단 소스는 space라는 변수에 입력값 받고, search 함수에 배열의 주소와 입력값 넘겨줘서


입력값과 같은 배열 값을 찾으면 그 배열의 주소를 리턴해줍니다.


이 주소를 main함수의 index가 받고, 반복문을 돌려서 배열에 얼마를 더해야 index와 주소값이 같아지는지 구해서 이거를


size라는 변수에 넣고, print 함수에 배열과 size 변수를 넣어서 출력하는 원리입니다.


근데 잘 찾지를 못해서 이렇게 질문드립니다. 소스 자체는 잘 짠 것 같은데 문제가 발생하네요 ..


그 찾았습니다 : n 에서 n이 배열의 몇번째 인덱스 값에 있는지 찾고 그 인덱스를 출력해야하는데 저는 탐색할 값을 출력해서 문제가 발생했습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
using namespace std;
const int NUMBER = 10;
int* search(int* A, int n);
void print(int* A, int size);
int main(void)
{
int *index = 0;
int space = 0;
int size = 0;
cout << "탐색할 수를 입력하시오 : ";
cin >> space;
int A[NUMBER] = { 10, 9 , 8,7,6,5,4,3,2,1 };
index = search(A, space);
for (int a = 0; a < NUMBER; a++) {
if (A + a == index) {
size = a;
}
}
print(A, size);
}
int* search(int* A, int n)
{
for (int i = 0; i < NUMBER; i++) {
if (n == A[i]) {
return &A[i];
}
}
}
void print(int* A, int size)
{
cout << "찾았습니다 : " << *(A + size);
}
cs