숨쉬는 거보다 더 쉬울지 모르는 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함수만 고쳐보면 아래와 같은데 테스트는 안해봤습니다.
댓글 달기