숨쉬는 거보다 더 쉬울지 모르는 c 언어 문제

xodn158의 이미지

학번 입력하고 성적 입력한 뒤에 점수를 알고싶은 학번을 입력해서 점수를 찾는 소스인데 포인터 지식이 부족해서 올렸습니다. 도와주세요

#include <stdio.h>
void student(int*,int);
void db(int*,int);
void search(int n);
 
int main() {
 
	int STUDENT[10],DB[10],n;
	student(STUDENT,10);
	db(STUDENT,10);
	printf("hak input");
	scanf("%d",&n);
	search(n);
 
}
void student(int* s, int size)
{
 
	for(int i =0; i<size; i++){
		printf("hakbun : ");
		scanf("%d",&s[i]);
	}
}
void db(int* d, int size)
{
 
	for(int i =0; i<size; i++){
		printf("DB : ");
		scanf("%d",&d[i]);
	}
}
void search(int n)
{
	int j=0;
	for(int i =0; i<10; i++){
		if(STUDENT[i] == n){
			j = i;
		}
	}
	printf("DB score");
	printf("%d",*(DB+j));
}
박철완 (아이언팍)@Google의 이미지

일단 포인터에대한 지식 부재보다는 다른 문제인거같은데.

student/db/search 3가지 함수가 있는데요.
student 함수와 db 함수가 하는일이 정확이 같은거 같은데 원래 어떤 의도로 나누신건지..

search는 함수의 이름으로 보아. 학번에 따라 값을 찾아서 리턴해주고 싶으신거 같은데..
문제 1. STUDENT 는 전역 변수가 아닙니다. search함수에서 접근할 수 없어요.
문제 2. 값을 검색하는 식이 잘못 되었습니다. 짠 코드를 보니 index는 학번 / 값은 점수 인거 같은데.
if(STUDENT[i] == n) 는 입력받은 n 이 점수와 같을때. 즉 특정 점수의 학생을 찾는게 되네요.

search함수만 고쳐보면 아래와 같은데 테스트는 안해봤습니다.

int search(int* st,int n)
{
	for(int i =0; i<10; i++){
		if(i == n) return st[i];
	}
}
 
int main() {
	int score = search(STUDENT,10);
	printf("DB score %d\n",score);
}