June is Combung
괄호예제 & 포켓몬2 본문
typedef struct Goalho{
char str[100];
}GH;
int func1(){
// 인자 : 소괄호로만 구성된 문자열 1개
// 하는 일: 괄호의 짝궁 구성이 올바른지 판별
// 리턴 : 짝궁이 맞으면 1, 아니면 0
// func1("(())()"); // 1
// func1("(())())"); // 0
// func1("((())())"); // 1
// quiz01 에서 테스트
return 0;
}
void quiz01(){
func1();
}
typedef struct Pokemon{
/*구조체 Pokemon 를 정의
필드 : name(이름), level(레벨)
메뉴 띄우기
1. 포켓몬 추가 => 이름, 나이를 입력 받아 Pokemon 구조체 생성 (배열 혹은 동적할당)
2. 모든 포켓몬 보기 => 현재 사용자가 추가한 모든 포켓몬 이름, 나이 출력
3. 포켓몬 레벨업 => 이름을 입력받고 해당 Pokemon 이 있으면 => 레벨 1 증가
없으면 "미등록 포켓몬" 출력
4. 종료 => 반복 종료*/
char name[100];
int lv;
int hp;
}POK;
void print_pokemon(POK p){
printf("포켓몬 이름: %s \n",p.name);
printf("포켓몬 레벨: %d \n",p.lv);
printf("포켓몬 체력: %d \n",p.hp);
printf("==============================\n");
}
void level_up(POK *p){
++p->lv;
}
void quiz02(){
POK p1, p2, p3;
strcpy_s(p1.name, 100, "피카츄");
p1.lv = 10;
p1.hp = 100;
strcpy_s(p2.name, 100, "라이츄");
p2.lv = 20;
p2.hp = 2000;
strcpy_s(p3.name, 100, "파이리");
p3.lv = 15;
p3.hp = p3.lv * 100;
print_pokemon(p1);
print_pokemon(p2);
print_pokemon(p3);
level_up(&p1);
level_up(&p2);
level_up(&p3);
printf("레벨업! \n\n");
print_pokemon(p1);
print_pokemon(p2);
print_pokemon(p3);
}
#include<stdio.h>
#include<string.h>
/*
구조체 : 여러 데이터를 한 세트로 묶어주기 위한 설계도
구조체 정의 (설계도 만들기)
*/
/*struct pokemon{
char name[100];
int level;
int hp;
};
// 구조체 -> 사용자 정의 자료형으로 등록
typedef struct pokemon POK;*/
typedef struct pokemon{
char name[100];
int level;
int hp;
}POK;
void print_pokemon(POK p){
printf("이름: %s \n", p.name);
printf("레벨: %d \n", p.level);
printf("체력: %d \n", p.hp);
printf("____________________________\n\n");
}
void level_up(POK *p){
//(*p).level++;
++p->level;
/*
'.' : 이름.필드명 (구조체변수명.멤버변수명)
'->' : 주소->필드명 (구조체의 주소->멤버변수명)
*/
}
void ex01(){
POK p1 = {"피카츄", 100, 1000};
POK p2, p3;
strcpy_s(p2.name,100,"라이츄"); // p2.name = "라이츄";
p2.level = 10;
p2.hp = 1000;
strcpy_s(p3.name,100,"푸린");
p3.level = 20;
p3.hp = p3.level * 100;
print_pokemon(p1);
print_pokemon(p2);
print_pokemon(p3);
level_up(&p1);
level_up(&p3);
print_pokemon(p1);
print_pokemon(p3);
}
/*
< 자기 참조 구조체 >
(연결리스트 구현 시 사용)
=> 자기 자신과 똑같은 모양을 참조하는 포인터 멤버를 가지는 구조체
*/
typedef struct node{
int data;
struct node* next;
}NODE;
void main(){
ex01();
}
Comments