구조체 선언은 struct 구조체명; 으로 한다.
예를 들면, man.name; 에서
man : 소속 구조체 변수명, name : 멤버변수 라고 할 수 있다.
구조체 포인터를 매개변수로 사용하는 함수를 작성할 때에는
(*p).name 을 p→name 으로 간략하게 표현할 수 있다. 약속으로 규정된 것이다!
▶ 구조체 배열로 5명의 성적을 입력받아 총점, 평균 출력하기
#includeusing 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 등으로 입력해 주어야 프로그램이 작동된다는 것을 명심하자.
'study > C++' 카테고리의 다른 글
[클래스] 클래스 멤버함수 정의하기 / 생성자와 소멸자 (0) | 2017.05.14 |
---|---|
[배열과 포인터]1차원 포인터와 2차원 포인터의 정의 (0) | 2017.04.28 |
[포인터] 포인터 기본 / 주소에 의한 전달방식 / 참조에 의한 전달방식 (0) | 2017.04.28 |
[함수]함수를 이용한 짝홀 판단 / 함수를 이용한 평균 구하기 (0) | 2017.04.18 |
[제어문] 알파벳 A-Z까지 출력 / *로 역삼각형 출력 / 구구단 프로그램 출력 (0) | 2017.04.03 |