#include <stdio.h>
#include <stdlib.h>
int main(void){
int HowManyTry = 0; //몇 가정의 표본을 가질 것인지
char DoYouSetLimit = '\0'; //Infinity 설정의 scanf용 변수
int HowManyBabys; //만약 아이를 무한히 가지지 않는다면 몇 명이 한계 수인지
int Infinity = 0; //이후에 나오는 반복문(여아라면 아이를 또 낳는)을 무한히 실행 할 것인지 여부
int BabysSex = 1; //0이면 남아, 1면 여아
int HowManyMales = 0; //남아가 몇명인지
int HowManyFemales = 0;// 여아가 몇명인지
int HowManyBabysTemp = 0;
printf("시행 할 횟수를 입력 해 주세요.\n");
scanf("%d", &HowManyTry);
printf("최대 출산 아이 수를 설정하시겠습니까? Y/N\n");
scanf(" %c", &DoYouSetLimit);
if(DoYouSetLimit == 'Y'){
printf("최대 출산 아이 수를 입력 해 주세요.\n");
scanf("%d", &HowManyBabys);
HowManyBabysTemp = HowManyBabys;
}
else{
Infinity = 1;
}
if(Infinity == 1){
for(HowManyTry; HowManyTry != 0; HowManyTry--){
BabysSex = 1;
while (BabysSex == 1)
{
BabysSex = rand()%2;
if(BabysSex == 0){
HowManyMales = HowManyMales+1;
printf("남\n");
}
else{
HowManyFemales = HowManyFemales+1;
printf("여");
}
}
}
}
else{
for(HowManyTry; HowManyTry != 0; HowManyTry--){
BabysSex = 1;
HowManyBabys = HowManyBabysTemp;
while (BabysSex == 1 && HowManyBabys != 0)
{
BabysSex = rand()%2;
if(BabysSex == 0){
HowManyMales = HowManyMales+1;
printf("남\n");
}
else if(HowManyBabys == 1){
HowManyFemales = HowManyFemales+1;
printf("여\n");
}
else{
HowManyFemales = HowManyFemales+1;
printf("여");
}
HowManyBabys = HowManyBabys-1;
}
}
}
float RateMale = (float)HowManyMales/(HowManyMales+HowManyFemales)*100;
float RateFemale = (float)HowManyFemales/(HowManyMales+HowManyFemales)*100;
printf("총 남아 수 : %d\n", HowManyMales);
printf("총 여아 수 : %d\n", HowManyFemales);
printf("남 : 여 = %.2f : %.2f", RateMale, RateFemale);
return 0;
}
반복문 조건문 중첩된거 씹극혐인데 줄이는 방법 있을까요...?
변수명 씨발..