// 나도 코딩 c언어 9장
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct book{
int id; //번호(id)
char *title; //제목
int available; //0:대출중, 1:대출가능
};
void print_books(struct book *books); //함수선언
int main(void)
{
struct book books(4)={ //도서 4권 정의, 처음에는 모두 대출 가능 상태
{1,"c 입문편", 1}, {2, "파이썬 기본편", 1}, {3, "자바 기본편", 1}, {4,"파이썬 중급편",1}
};
int input; //사용자 입력을 저장할 변수
while(1){
print_books(books); //전체 도서 정보 출력 함수 호출
printf("대출/반납할 책 번호를 입력하세요.(종료 : -1) : ");
scanf("%d", &input);//사용자 입력
if(input==-1){
printf("프로그램을 종료합니다.\n");
break; //프로그램 종료
}
if (input<1 ||input >4){
printf("잘못된 입력입니다.\n");
continue; //계속 진행
}
input -=1;
if(books(input).available ==0){//대출 중인 도서이면 반납처리
printf("'%s' 반납이 완료됬습니다.\n", books(input).title);
books(input).available = 1;
}
else{
printf("'%s' 대출이 완료됬습니다.\n", books(input).title);
books(input).available = 0;
}
}
return 0;
}
//전체 도서 정보 출력. books 배열은 구조체 변수로 출력
void print_books(struct book *books){//함수 정의
char * available = "대출 가능";
char * unavailable = "대출 중";
printf("전체 도서 목록입니다.\n");
printf("-------------------------\n");
for(int i=0; i<4;i++){
printf("%d. %-16s ", books(i).id, books(i).title); //도서번호, 도서제목 출력
//대출여부 출력
if(books(i).available ==1){
printf("(%s)\n", available);
}
else{
printf("(%s)\n", unavailable);
}
}
printf("-------------------------\n");
}
나도코딩의 구조 강의를 따라했습니다. 여전히 어려운 구조..
![[BOJ/백준] 4470 - 줄 번호 [BOJ/백준] 4470 - 줄 번호](https://and.egegg.kr/wp-content/plugins/contextual-related-posts/default.png)
