피트니스 센터의 회원관리 프로그램을 만듭니다. 신규회원이 등록하면 회원번호, 이름, 체중을 입력하여 동적 할당 영역에 저장합니다. 회원번호로 음수를 입력하면 입력작업을 마치고, 총 회원수와 평균 체중을 출력합니다. 또 이어서 최고 체중을 갖는 회원의 정보를 출력합니다. 최대 등록 회원수는 100명으로 제한하며 다음 구조체와 함수를 참고하여 작성합니다. typedef struct { double weight;//회원번호 int num;//이름 char name[20];//체중 } Fitness; int inputMember(Fitness **ppFitn);//전체 회원 등록 수 반환 double averageWeight(Fitness **ppFitn, int count);//평균 체중 반환 int maxW..
저금할 동전의 금액과 개수를 반복 입력하여 저금통에 저금합니다. 금액으로 0 또는 음수가 입력되면 입력을 마치고 총 저축액을 출력합니다. 각 동전의 개수를 저장할 구조체와 함수는 다음을 참고하여 작성합니다. struct moneyBoX { int w500; int w100; int w50; int w100; }; typedef struct moneyBox MoneyBox; void init(MoneyBox* pMoneyBox); //MoneyBox 변수 초기화 void save(MoneyBox* pMoneyBox, int unit, int count); //unit 동전을 count개 저금 int total(MoneyBox* pMoneyBox); //저금통의 총 저축액 반환 프로그램의 실행결과는 다음과 ..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 구조체도 포인터를 가질 수 있고, 구조체를 배열로 만들 수도 있으며, 자기 자신을 호출하는 구조체도 만들 수 있습니다. 이번엔 이러한 구조체의 여러가지 활용법을 배웁니다. 또 구조체와 유사한 사용자 정의 자료형인 '공용체'와, 서로 연관된 상수를 모아 기호화된 이름으로 쓰는 '열거형'의 특징과 사용법을 배웁니다. 또 자료형 이름을 재정의하는 typedef에 대해서도 배웁니다. 구조체 변수는 그 안에 여러 개의 변수를 멤버로 가질 수 있으나 구조체 그 자체는 단지 하나의 변수입니다. 따라서 구조체 변수에 주소 연산자를 ..
주의 사항! 이 일지는 작성하고 있는 현시점, 공부와 병행하면서 작성되고 있습니다. 공부 중에 떠오른 생각이나 그때그때의 개념정리 같은 내용이 포함됩니다. 따라서 이 일지의 내용은 제가 공부하고 이해한 대로 작성되기 때문에 실제 사실과는 다를 수 있습니다 이번 시간은 '비트 필드 구조체'에 관한 내용입니다. 구조체가 int형 멤버를 10개 갖는다면 구조체 변수는 총 40바이트의 메모리를 할당합니다. 그런데 각 멤버에 저장하는 값이 0과 1뿐이라면 실제 사용하는 공간은 1비트뿐이므로 대부분의 공간을 낭비하게 됩니다. 이런 경우 '비트 필드 구조체'를 활용할 수 있습니다. 비트 필드 구조체는 멤버의 크기를 비트 단위로 설정할 수 있습니다. 바이트 단위로 멤버의 크기를 설정하던 기존 구조체와는 다릅니다. 비트..
주의 사항! 이 일지는 작성하고 있는 현시점, 공부와 병행하면서 작성되고 있습니다. 공부 중에 떠오른 생각이나 그때그때의 개념정리 같은 내용이 포함됩니다. 따라서 이 일지의 내용은 제가 공부하고 이해한 대로 작성되기 때문에 실제 사실과는 다를 수 있습니다 이번 시간은 '사용자 정의 자료형'에 관한 내용입니다. 변수가 많이 필요하면 주로 배열을 사용합니다. 하지만 변수들의 자료형이 다 다르다면 배열을 만들 수 없습니다. 그럴 때는 '구조체'를 사용합니다. 구조체가 무엇인지 바로 예제를 통해 확인해보겠습니다. #include struct student { int num; double grade; }; void main(void) { struct student s1; s1.num = 2; s1.grade = ..
끝말 잇기를 하는 프로그램을 만듭니다. 단어를 입력하고 이미 입력된 단어나 끝말 잇기가 되지 않는 단어는 확인하여 제외합니다. end를 입력하면 입력을 끝내고 그 동안 입력한 모든 단어를 차례로 출력합니다. 입력한 단어는 그 길에 맞는 동적 할당 영역에 저장하며 입력 가능한 단어 수는 최대 100개로 제한합니다. 실행결과는 다음과 같습니다. /* 실행결과 단어 입력 : apple 단어 입력 : elephant 단어 입력 : tiger 단어 입력 : rabbit 단어 입력 : tiger 이미 존재 하는 단어입니다. 단어 입력 : pineapple 단어 잇기가 불가능합니다. 단어 입력 : tomato 단어 입력 : end apple elephant tiger rabbit tomato */ 다음은 제가 작성한..