반환값이 이상합니다
돋되다
질문 제목 : 반환값이 이상합니다질문 요약 :함수의 매개변수 값을 반환했는데 값이 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);로 변경해보세요.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2693984 | 오버로딩이 무엇인가요? (2) | 헛매질 | 2025-05-07 |
2693956 | PlaySound재생이 안됩니다!(C에 음악넣기) | 지존 | 2025-05-06 |
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |
2693788 | 이런 함수는 없나요? (3) | 앤드류 | 2025-05-05 |
2693758 | txt파일 불러와서 행렬로 저장 | 큰애 | 2025-05-05 |
2693727 | scanf 오류 문제!! (2) | 큰나래 | 2025-05-04 |
2693704 | 구조체 주소록 문제인데 도와주세요 (2) | 도1도캣 | 2025-05-04 |
2693676 | 열혈강의 c언어 질문입니다 | 하양이 | 2025-05-04 |
2693647 | 12.620000 을요 12.620 으로 어떻게 표현해요? (2) | 파도 | 2025-05-04 |
2693619 | 타이틀 코드.. | 단순드립 | 2025-05-03 |
2693591 | 컴파일 에러에서 질문드립니다 (3) | 게자리 | 2025-05-03 |
2693463 | 동적할당 이용시 fwrite사용을 어떻게 해야하나요..? (10) | 일본어못해요 | 2025-05-02 |
2693387 | 배열문제입니다 수정오류캡쳐했습니다 (6) | 연하얀 | 2025-05-01 |
2693356 | text 입출력 내림차순 질문입니다 ㅠ | 빛글 | 2025-05-01 |
2693328 | C언어를이용해서 .txt파일 외에 다른 확장자 파일 삭제가 가능한지.. (2) | 대나무 | 2025-05-01 |
2693299 | 파일입출력 바이너리파일 | 독특한 | 2025-04-30 |