숨쉬는 거보다 더 쉬울지 모르는 c 언어 문제
글쓴이: xodn158 / 작성시간: 토, 2018/06/16 - 7:35오후
학번 입력하고 성적 입력한 뒤에 점수를 알고싶은 학번을 입력해서 점수를 찾는 소스인데 포인터 지식이 부족해서 올렸습니다. 도와주세요
#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));
}Forums:


음,,,
일단 포인터에대한 지식 부재보다는 다른 문제인거같은데.
student/db/search 3가지 함수가 있는데요.
student 함수와 db 함수가 하는일이 정확이 같은거 같은데 원래 어떤 의도로 나누신건지..
search는 함수의 이름으로 보아. 학번에 따라 값을 찾아서 리턴해주고 싶으신거 같은데..
문제 1. STUDENT 는 전역 변수가 아닙니다. search함수에서 접근할 수 없어요.
문제 2. 값을 검색하는 식이 잘못 되었습니다. 짠 코드를 보니 index는 학번 / 값은 점수 인거 같은데.
if(STUDENT[i] == n) 는 입력받은 n 이 점수와 같을때. 즉 특정 점수의 학생을 찾는게 되네요.
search함수만 고쳐보면 아래와 같은데 테스트는 안해봤습니다.
댓글 달기