[c]입력문 입력시 종료됩니다.
조회수 807회
스위치 1번 캐릭터 입력에서 건강스탯 부문 입력시 코드가 종료되어 버립니다... 코드 봐주셔서 감사합니다!
#include<stdio.h>
#include<stdlib.h>
// 함수 원형선언
void menu();
typedef struct Create_Character create_character;
typedef struct Statistics statistics;
create_character *input_character();
void end();
// 구조체
typedef struct Create_Character{
int character_num;
char name[20];
statistics *statistics;
}create_character;
typedef struct Statistics{
int Health;
int Wealth;
int Power;
}statistics;
// 전체 캐릭터 수 (전역변수)
int total_character = 0;
create_character *character[5];
// 메인
void main(){
int menu_num;
menu();
while(1){
scanf("%d", &menu_num);
switch (menu_num){
case 1:
if(total_character < 5){
character[total_character] = input_character();
}
else{
printf("생성 가능한 캐릭터가 없습니다.\n");
}
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
end();
break;
default:
printf("잘못 선택하셧습니다.\n");
break;
}
}
}
//메뉴
void menu(){
printf("1. 캐릭터 입력 (%d/5)\n", total_character);
printf("2. 능력치 수정 (특정 캐릭터의 능력치 수정)\n");
printf("3. 능력 평균과 합 출력\n");
printf("4. 최대 능력자 출력\n");
printf("5. 최소 능력자 출력\n");
printf("6. 캐릭터 전체 출력\n");
printf("7. 종료\n");
}
// 캐릭터 입력
create_character *input_character(){
create_character *new;
new = (create_character *)malloc(sizeof(create_character));
new ->character_num = total_character+1; //고유넘버
printf("이름 : ");
scanf("%s", new -> name);
printf("건강(Health) : ");
scanf("%d", &new -> statistics -> Health);
printf("부(Wealth) : ");
scanf("%d", &(new -> statistics ->Wealth));
printf("힘(power) : ");
scanf("%d", &(new -> statistics ->Power));
return new;
total_character = total_character + 1;
}
// 능력치 수정(특정 캐릭터의 능력치 수정)
//능력 평균과 합 출력
//최대 능력자 출력
// 최소 능력자 출력
//캐릭터 전체 출력
//종료
void end(){
for(int num = 0; num < total_character; num++){
free(character[num]);
}
exit(1);
}
출력
- 캐릭터 입력 (0/5)
- 능력치 수정 (특정 캐릭터의 능력치 수정)
- 능력 평균과 합 출력
- 최대 능력자 출력
- 최소 능력자 출력
- 캐릭터 전체 출력
- 종료 1 이름 : asd 건강(Health) : 1
댓글 입력