반환값이 이상합니다
돋되다
질문 제목 : 반환값이 이상합니다질문 요약 :함수의 매개변수 값을 반환했는데 값이 0으로 바뀝니다.질문 내용 :
#includestdio.h
#includestdlib.h
#includetime.h
typedef struct {
int id;
int score;
char grade;
} student;
void input(student[], FILE *); //학생들의 학번,성적을 읽어들이는 함수
double calcAvg(student[], double); //학생들의 평균을 계산하는 함수
void putGrade(student[], double); //학생들의 학점을 평가하는 함수
void display(student[]); //학번,성적,학점을 출력하는 함수
int main()
{
student check[60];
double ave;
FILE *fp;
//fp와 ave의 값을 초기화시킴
fp = 0;
ave = 0;
srand((unsigned)time(NULL));
input(check, fp);
calcAvg(check, ave);
printf(%.2lf\n\n, ave);
putGrade(check, ave);
display(check);
return 0;
}
void input(student x[], FILE *a)
{
int i;
int fid[60], fscore[60]; //임시로 학생들의 학번, 성적을 저장할 배열
//student.txt를 쓰기 모드로 생성
a = fopen(student.txt, wt);
//파일이 열리지 않으면 에러가 났다고 출력함
if (a == NULL)
{
printf(에러\n);
}
fid[0] = 20114120;
for (i = 0; i 59; i++)
{
fid[i+1] = fid[i] + 1; //60명의 학생들의 학번을 배열에 저장
}
for (i = 0; i 60; i++)
{
fscore[i] = rand() % 100; //60명의 학생들의 성적을 배열에 저장
}
for (i = 0; i 60; i++)
{
fprintf(a, %d %d\n, fid[i], fscore[i]); //파일에 학생들의 학번, 성적을 씀
}
fclose(a); //파일을 닫음
a = fopen(student.txt, rt); //파일을 읽기 모드로 연다
for (i = 0; i 60; i++)
{
fscanf(a, %d %d, &x[i].id, &x[i].score); //파일에 써있는 학번, 성적을 구조체 student의 필드 id, score에 읽어들임
}
fclose(a); //파일을 닫음
}
double calcAvg(student y[], double b)
{
double sum;
int i;
sum = 0; //초기값을 0으로 저장
for (i = 0; i 60; i++)
{
sum = sum + y[i].score; //학생들의 성적의 합을 구함
}
b = sum / 60; //학생들의 성적의 평균을 구함
printf(%.2lf\n\n, b);
return b; //평균값을 반환시킴
}calcAvg함수 내에서 b값을 출력하면 잘 나오는데 b값을 리턴한 후 메인함수에서 ave를 출력하면 0이 나옵니다.
왜 이런지 이유를 모르겠습니다...ㅠ
-
초코초코해 2024-12-31
아하~ 그렇게 변경하니 제대로 나오네요! 감사합니다!
-
별하 2024-12-31
리턴한 b값이 ave값이 아닙니다.
ave = calcAvg(check, ave);로 변경해보세요.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2680705 | 소수 구하는 프로그램 질문요 | 퐁당 | 2025-01-05 |
2680626 | 초보인데 이 문제들 답좀 알려주실분 계신가요? (1) | Aileen | 2025-01-04 |
2680598 | 이거 뭐가 잘못된거죠 ㅠㅠ? (4) | 다온 | 2025-01-04 |
2680520 | 2진수 연산하기 | 은솜 | 2025-01-03 |
2680494 | fscanf.c 에러. 친구네 집에선 정상 실행되는데 저희집에선 뜨네요. | 서희 | 2025-01-03 |
2680443 | 구조체 값들을 배열로 memcpy 이용해 저장할때 (1) | 테이 | 2025-01-02 |
2680416 | 다른 프로그램을 실행시킬수 있는 함수는? | Addicted | 2025-01-02 |
2680387 | 여러분들의 지식이 필요합니다. 프로그램첨부 | 아련나래 | 2025-01-02 |
2680306 | 구조체를 통한 성적관리중에 문제가 생겼습니다 도와주세요 ㅠㅠ | 일본드립 | 2025-01-01 |
2680277 | argc 인자값 확인 질문이요.. (4) | 맑은가람 | 2025-01-01 |
2680252 | r트리 소스코드 공유합니다 | 일본드립 | 2025-01-01 |
2680223 | 반환값이 이상합니다 (2) | 돋되다 | 2024-12-31 |
2680194 | 관계 연산자에서 에러나요 | 좋아해 | 2024-12-31 |
2680118 | 0~9까지의 정수 10번입력받아서 가장많이 나온수와 빈도수를 출력하는 프로그램 (1) | 스위트초코 | 2024-12-30 |
2680092 | 파일의 헥스값을 보는 방법은 알았는데요... | 레오 | 2024-12-30 |
2680040 | 해석을 못하겠어요... ㅠ | 해가빛 | 2024-12-30 |
2679984 | file파일, project프로젝트, worksplace작업공간의 차이에 대해 궁금해요 | 헛나발 | 2024-12-29 |
2679929 | build빌드 와 buildall 빌드올의 차이에대해 알려주세요 | 그댸와나 | 2024-12-29 |
2679874 | 배열 오름차순으로 정렬 질문이요 (2) | 잉간 | 2024-12-28 |
2679848 | [초보]다시 질문이요;; (6) | 로운 | 2024-12-28 |