반응형
#1. 구조체가 뭐야?
컴퓨터 프로그래밍에서 구조체("구조"의 줄임말)는 다양한 유형의 다양한 변수를 단일 단위로 그룹화할 수 있는 복합 데이터 유형이에요. 관련 정보를 보유할 수 있는 사용자 지정 데이터 구조를 만들 수 있어요.
구조체는 데이터 구조에 대한 청사진 또는 템플릿을 정의해요. 멤버 또는 필드로 알려진 개별 구성 요소의 이름과 데이터 유형을 지정해요. 구조체 내의 각 멤버는 정수, 실수, 문자 또는 기타 구조체와 같은 자체 데이터 유형을 가질 수 있어요.
구조체는 일반적으로 C, C++ 및 C#과 같은 프로그래밍 언어에서 사용됩니다. 아래는 C의 구조체 예제에요.
#2. 예제 코드 및 설명
#include <stdio.h>
#include <stdbool.h>
struct student // 구조체 student
{
char id[3][100];
char name[3][100];
int age[3];
bool gender[3];
};
int main()
{
struct student student;
int i = 0;
int j = 2;
int temp_gender[3];
while (i < 3) // 학생 정보 입력
{
printf("\n학번, 나이, 이름, 성별(여자: 0, 남자: 1)을 입력하세요. (%d번 남음)\n", j);
printf("예시) 100 21 김홍대 1\n");
scanf("%s %d %s %d", student.id[i], &student.age[i], student.name[i], &temp_gender[i]);
i = i + 1;
j = j - 1;
}
i = 0;
j = 0;
while (i < 3) // BOOL 타입으로 전환
{
if (temp_gender[i] == 0)
{
student.gender[i] = false;
}
else if (temp_gender[i] == 1)
{
student.gender[i] = true;
}
i = i + 1;
}
i = 0;
j = 0;
while (i < 3) // 학생 정보 출력
{
if (student.gender[i] == true)
{
printf("학번 : %s, 나이 : %d, 이름 : %s 성별 : m\n", student.id[i], student.age[i], student.name[i]);
}
else if (student.gender[i] == false)
{
printf("학번 : %s, 나이 : %d, 이름 : %s 성별 : f\n", student.id[i], student.age[i], student.name[i]);
}
i = i + 1;
}
}
전반적으로 이 코드는 ID, 이름, 연령 및 성별을 포함한 학생 정보를 저장하고 조작하는 구조체의 사용법을 보여주는 예시에요. 이 코드는 세 명의 학생에 대한 정보를 저장하기 위해 "student"라는 구조체의 사용법을 보여주는 C 프로그램이에요. 코드를 단계별로 살펴봐요.
- 필요한 헤더 파일 stdio.h 및 stdbool.h가 포함했어요.
- 'student' 구조체를 정의했고, 그 안에 있는 멤버들은 다음과 같아요.
○ id: 3명의 학생 ID를 저장하기 위한 2D 문자 배열
○ name: 3명의 학생 이름을 저장하기 위한 2D 문자 배열
○ age: 세 학생의 나이를 저장할 정수형 배열
○ gender: 세 학생의 성별을 나타내는 Bool 타입 배열 (여성의 경우 FALSE, 남성의 경우 TRUE) - main() 함수는 프로그램의 진입점으로 정의했어요.
- 학생 정보를 저장하기 위한 student(struct student 유형), 루프 카운터를 위한 i 및 j, 성별 입력을 임시로 저장하기 위한 temp_gender를 포함하여 여러 변수를 선언했어요.
- 첫 번째 while 루프는 학생 정보를 입력하는 데 사용되어요. 3명의 학생의 정보를 입력받기 때문에, 3번 진행해요.
- 루프 카운터 변수는 그에 따라 증가 및 감소해요.
- 두 번째 while 루프는 임시 성별 값(temp_gender)을 Bool 타입 (student.gender)으로 변환하는 데 사용해요.
- 루프 카운터 변수가 증가해요.
- 세 번째 while 루프는 학생 정보를 출력하는 데 사용해요.
- 성별은 'if' 문으로 확인하고 해당 문자(남은 'm', 여는 'f')를 다른 학생 정보와 함께 출력해요.
반응형
'IT' 카테고리의 다른 글
[C] 이중 연결리스트 Double Linked List (0) | 2025.03.20 |
---|---|
[C] 연결리스트 Linked List (0) | 2025.03.20 |
[C] 스택 알고리즘 Stack Algorithm (0) | 2023.07.06 |
[C] 이진 탐색 알고리즘 Binary Search Algorithm (0) | 2023.07.05 |
[C] 버블 정렬 알고리즘 Bubble Sorting Algorithm (0) | 2023.07.04 |