728x90
1.
#include <stdio.h>
// Employee 구조체 선언
typedef struct Employee
{
char name[30]; // 이름 정보
int pay; // 급여 정보
} Employee;
int main(void)
{
// 구조체 Employee의 배열 Employees를 선언
Employee Employees[] = { {"홍길동", 2000000},
{"임꺽정", 3000000},
{"김영철", 2500000} };
// Employees의 원소 수
size_t ArrSize = sizeof(Employees) / sizeof(Employees[0]);
// for문을 이용하여 출력
for (int i = 0; i<ArrSize ; i++){
printf("직원 이름: %s 월급여: %d\n", Employees[i].name, Employees[i].pay);
}
return 0;
}
/*
직원 이름: 홍길동 월급여: 2000000
직원 이름: 임꺽정 월급여: 3000000
직원 이름: 김영철 월급여: 2500000
*/
2.
#include <stdio.h>
// 분수 정보를 나타내는 구조체 fraction 선언
typedef struct fraction
{
char name[4]; // 이름
int numerator; // 분자
int denominator; // 분모
} fraction;
int main(void)
{
fraction a = {"a", 4, 5};
fraction b = {"b", 3, 7};
printf("%s = %d/%d\n", a.name, a.numerator, a.denominator);
printf("%s = %d/%d\n", b.name, b.numerator, b.denominator);
return 0;
}
/*
a = 4/5
b = 3/7
*/
3.
#include <stdio.h>
#include <string.h>
typedef struct fraction
{
char name[4];
int numerator; // 분자
int denominator; // 분모
} fraction;
int main(void)
{
fraction a = {"a", 4, 5};
fraction b = {"b", 3, 7};
fraction c;
strcpy(c.name, "c");
c.numerator = a.numerator * b.numerator; // a와 b에 멤버 변수에 접근하여 c의 멤버 변수 정의
c.denominator = a.denominator * b.denominator;
printf("%s = %d/%d\n", a.name, a.numerator, a.denominator);
printf("%s = %d/%d\n", b.name, b.numerator, b.denominator);
printf("%s = %s*%s = %d/%d\n", c.name, a.name, b.name, c.numerator, c.denominator);
return 0;
}
/*
a = 4/5
b = 3/7
c = a*b = 12/35
*/
4.
#include <stdio.h>
// 구조체 struct home_address 선언
typedef struct home_address
{
int st_num;
char street[30];
char city[30];
} address;
int main(void)
{
// 구조체 변수 2개 선언
address add1 = {223, "선릉로", "서울시"}; // 구조체 멤버 변수가 st_num, street, city 순으로 이루어 진것을 알수 있음
address add2 = {.city = "서울시", .st_num = 567, .street = "경인로"};
printf("%s %s %d\n", add1.city, add1.street, add1.st_num);
printf("%s %s %d\n", add2.city, add2.street, add2.st_num);
return 0;
}
/*
서울시 선릉로 223
서울시 경인로 567
*/
5.
#include <stdio.h>
typedef struct home_address
{
int st_num;
char street[30];
char city[30];
} address;
typedef struct person
{
address add; // address 구조체를 person 구조체의 멤버로 사용
char name[30];
char p_num[30];
} person;
int main(void)
{
// 멤버 변수로 구조체 변수를 사용하기 때문에 {}안에 형식에 맞게 작성
person Hong = {{123, "시청길", "춘천시"}, "홍길동", "011-1111-1111"};
person Jo = {{456, "경인로", "서울시"}, "조명호", "017-3245-3278"};
person Choi = {{789, "영통로", "수원시"}, "최윤호", "011-2222-2456"};
printf(" 주 소 이 름 전화번호\n\n");
printf("%s %s %d %s %s\n", Hong.add.city, Hong.add.street, Hong.add.st_num, Hong.name, Hong.p_num);
printf("%s %s %d %s %s\n", Jo.add.city, Jo.add.street, Jo.add.st_num, Jo.name, Jo.p_num);
printf("%s %s %d %s %s\n", Choi.add.city, Choi.add.street, Choi.add.st_num, Choi.name, Choi.p_num);
return 0;
}
/*
주 소 이 름 전화번호
춘천시 시청길 123 홍길동 011-1111-1111
서울시 경인로 456 조명호 017-3245-3278
수원시 영통로 789 최윤호 011-2222-2456
*/
6.
#include <stdio.h>
typedef struct student
{
char name[30]; // 이름
char s_num[30]; // 학번
double score; // 평균학점
char dep[30]; // 학과
char job[30]; // 진로
} student;
int main(void)
{
student students[5] = {{"김형근", "0052029", 4.2, "전자상거래", "웹디자이너"},
{"배태준", "0052030", 4.3, "전자상거래", "군인"},
{"김보름", "0052031", 4.3, "전자상거래", "웹디자이너"},
{"서정순", "0052032", 3.5, "전자상거래", "웹마스터"},
{"최종욱", "0052033", 3.7, "전자상거래", "DB관리자"},
};
// 배열 크기
size_t size = sizeof(students) / sizeof(students[0]);
printf(" 이 름 학 번 학 점 학 과 진 로\n\n");
for (int i = 0; i < size; i++){
printf("%10s %10s %10.1f %10s %10s\n",
students[i].name, students[i].s_num, students[i].score, students[i].dep, students[i].job);
}
return 0;
}
/*
이 름 학 번 학 점 학 과 진 로
김형근 0052029 4.2 전자상거래 웹디자이너
배태준 0052030 4.3 전자상거래 군인
김보름 0052031 4.3 전자상거래 웹디자이너
서정순 0052032 3.5 전자상거래 웹마스터
최종욱 0052033 3.7 전자상거래 DB관리자
*/
7.
#include <stdio.h>
typedef struct home_address
{
char dong[30];
char goo[30];
char city[30];
} address;
// 13_5번의 person 구조체 이용
typedef struct person
{
address add; // address 구조체를 person 구조체의 멤버로 사용
char name[30];
char p_num[30];
} person;
typedef struct professor
{
person per; // 이름, 전화번호, 주소
char dep[30]; // 학과
char major[30]; // 담당
char subj[30]; // 과목
} professor;
int main(void)
{
// 구조체 배열을 사용하여 정보 입력 (3명만 입력)
professor p[3] = { {{{"고척동", "구로구", "서울시"}, "홍길동", "011-1111-1111"}, "전산과", "객체지향", "분석설계"},
{{{"비산동", "안양시", "경기도"}, "최윤호", "011-2222-2456"}, "전산과", "C 언어", "자바입문"},
{{{"\0", "고척동", "인천광역시"}, "박종학", "011-3333-2456"}, "전산과", "컴퓨터개론", "프로그래밍"}
};
// 배열 크기
size_t size = sizeof(p) / sizeof(p[0]);
printf("이름 전화번호 주소 학과 담당 과목\n\n");
for (int i = 0; i<size; i++){
printf("%s %s %s %s %s %10s %10s %10s\n", p[i].per.name, p[i].per.p_num, p[i].per.add.city, p[i].per.add.goo, p[i].per.add.dong, p[i].dep, p[i].major, p[i].subj);
}
return 0;
}
/*
이름 전화번호 주소 학과 담당 과목
홍길동 011-1111-1111 서울시 구로구 고척동 전산과 객체지향 분석설계
최윤호 011-2222-2456 경기도 안양시 비산동 전산과 C 언어 자바입문
박종학 011-3333-2456 인천광역시 고척동 전산과 컴퓨터개론 프로그래밍
*/
8.
728x90
'C Programming' 카테고리의 다른 글
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 10. 변수 유효범위 (0) | 2022.07.06 |
---|---|
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 14. 함수와 포인터 활용 (0) | 2022.07.04 |
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 13. 구조체와 공용체 (0) | 2022.07.04 |
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 08 프로그래밍 연습 (0) | 2022.06.29 |
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 07 프로그래밍 연습 (0) | 2022.06.29 |