구조체 관련 질문입니당 !
은소라
질문 제목 :구조체 일반(함수이용)질문 요약 :왜 잘못나오는지 모르겠어요 ㅜㅠ.질문 내용 :
#includestdio.h
struct student {
char name[20];
int midterm;
int final;
int average;
};
typedef struct student Student;
struct cClass {
int num;
Student s[40];
};
typedef struct cClass CClass;
void readStudentScore(Student *data)
{
printf(Enter student name: );
scanf(%s, data-name);
printf(Enter midterm and final score: );
scanf(%d %d, &data-midterm, &data-final);
}
void calculateStudentAverage(Student *p)
{
p-average = (p-midterm + p-final) / 2;
}
void printStudent(Student *sp)
{
printf(%s\t, sp-name);
printf(%d\t%d\t%d\n, sp-midterm, sp-final, sp-average);
}
int main(void)
{
CClass c2;
int i;
Student all = {Total, 0, 0, 0};
printf(Enter a number of student:);
scanf(%d, &c2.num);
for (i = 0; i c2.num; i++)
{
readStudentScore(&all);
}
for (i = 0; i c2.num; i++)
{
calculateStudentAverage(&all);
}
printf(\n 이름\t 중간\t 학기말\t 평균\n);
for (i = 0; i c2.num; i++)
printStudent(&c2.s[i]);
}
여기서
readStudentScore 성적을 읽여드리는 이 함수나
calculateStudentAverage 평균구하는 함수가 틀린것 같은데
어떻게 고쳐야할까요 ㅜㅠ..
아래처럼 오류가 납니다...
-
딥블랙 2023-11-24
Student readStudentScore(void)
{
\tStudent st;
\tprintf(\Enter student name: \);
\tscanf(\%s\ -
큰가람 2023-11-24
아~감사합니다 한번 시도해보고 또 안되면 혹시 쪽지로 여쭤바도 될까용...ㅠ_ㅠ
-
아지랑이 2023-11-24
void readStudentScore(CClass *data)
{
for (i = 0; i data-num; i++) // 입력한 학생수만큼...
{
printf(\Enter student name: \);
scanf(\%s\ -
내꺼 2023-11-24
그 문제가 아니라, 위 구조체에 대한 이해를 먼저 해야지요.
// 학생 1명에 대한 정보 구조체
struct student {
char name[20];
int midterm;
int final;
int average;
};
// 학급에 대한 정보 구조체
struct cClass {
int num; // 입력받을 학생수
Student s[40]; // 최대 40명의 학생 정보
}; -
봄해 2023-11-24
으악.....정말 어렵네요.... 그러면 혹시 함수에서 p나 sp를 ++시켜줘야할까요..?
-
눈 2023-11-24
위 코드에서 CClass c2; 에서 c2의 s 배열에 뭐가 저장되어 있다고 생각 하세요 ?
Student all 을 각 함수로 넘겨서 입력을 받고 평균 계산을 했으니 이 정보가 c2 의 s 배열에 저장되어 있을 것이다??.........라고 의도했겠지만, 위 코드론 c2 변수와 all 변수는 관계가 없습니다.
for (i = 0; i c2.num; i++) 루프에 의해 c2.num 만큼 쓸데없는 반복만 될 뿐, 실제 생성된 Student 객체는
a