구조체 선언은 struct 구조체명; 으로 한다. 

예를 들면, man.name; 에서 

man : 소속 구조체 변수명, name : 멤버변수 라고 할 수 있다. 


구조체 포인터를 매개변수로 사용하는 함수를 작성할 때에는 

(*p).namep→name 으로 간략하게 표현할 수 있다. 약속으로 규정된 것이다! 



▶ 구조체 배열로 5명의 성적을 입력받아 총점, 평균 출력하기 

#include
using namespace std; 
struct score {
	char name[20]; 
	int kor, eng, mat, tot; 
	double avg; 
};

void main() {
	struct score stu[5]; 
	int i; 

	for (i = 0; i < 5; i++) {
		cout << "이름을 입력하시오->"; 
		cin >> stu[i].name; 
		cout << "국어점수를 입력하시오->";
		cin >> stu[i].kor;
		cout << "영어점수를 입력하시오->";
		cin >> stu[i].eng;
		cout << "수학점수를 입력하시오->";
		cin >> stu[i].mat;

		stu[i].tot = stu[i].kor + stu[i].eng + stu[i].mat; 
		stu[i].avg = stu[i].tot / 3.0; 
	}

	cout << "\t 이름  \t 국어    \t영어    \t수학  \t   총점    \t 평균";
	cout << "\n =========================================\n";

	for (i = 0; i < 5; i++) {
	cout << "\t" << stu[i].name << "\t" << stu[i].kor << "\t" << stu[i].eng << "\t" << stu[i].mat << "\t" 
		<< stu[i].tot << "\t" << stu[i].avg;
	}

}

이런 식으로 이름과 점수를 다섯 번 입력할 수 있게 되어있다. 

위와 같이 결과는 학생 당 이름, 국어, 영어, 수학, 총점, 평균 순으로 출력된다. 



성적관리를 위한 구조체를 사용할 때에는 위와 같이 score라는 이름의 구조체를 정의하고, stu[5]라는 이름의 성적을 입력받을 5칸을 만들어준다. 

또한, tot(총점), avg(평균)는 메인 함수에서 계산하여 구하게 된다. 

계산에 쓰이는 변수들은 score 구조체 내에서 name[20]과 같은 배열 크기 지정 없이 kor, eng, tot 등으로 입력해 주어야 프로그램이 작동된다는 것을 명심하자. 


+ Recent posts