#include <Turboc.h>
void main()
{
int num,i; // num : 임의 수 i:입력받을 정수
int one,ten,hund; //임의 자릿수
int ione,iten,ihund; //입력받은 정수 자릿수
int strike,ball;
srand((unsigned)time(NULL));//랜덤함수 초기화
strike=0;
ball=0;
for(;;){
num=rand()9+100; //임의 수 범위 100~999
hund=num/100;
ten=((num0)-(num))/10;
one=num;
if(hund!=ten){
if(ten!=one){
if(hund!=one){
break;
}
}
}
}
for(;;){
printf("세 자릿수 정수를 입력하세요. 각 자리의 수는 중복되는 숫자가 오면 안됩니다.\n");
scanf("%d",&i);
if(i>=100){
if(i>999){
printf("세자리 수만 가능합니다.\n");
}else{
ihund=i/100;
iten=((i0)-(i))/10;
ione=i;
if(ihund==iten){
printf("중복되는 숫자가 있으면 안됩니다.\n");
}else if(ihund==ione){
printf("중복되는 숫자가 있으면 안됩니다.\n");
}else if(iten==ione){
printf("중복되는 숫자가 있으면 안됩니다.\n");
}else{
break;
}
}
}else {
printf("세자리 수만 가능합니다.\n");
}
}
printf("입력받은 수 : %d%d%d\n",ihund,iten,ione);
if(ihund==hund){
strike=strike+1;
}
if(iten==ten){
strike=strike+1;
}
if(ione==one){
strike=strike+1;
}
if(ihund==ten){
ball=ball+1;
}
if(ihund==one){
ball=ball+1;
}
if(iten==one){
ball=ball+1;
}
if(iten==hund){
ball=ball+1;
}
if(ione==ten){
ball=ball+1;
}
if(ione==hund){
ball=ball+1;
}
printf("스트라이크 : %d 볼 : %d\n숫자는 %d입니다.\n",strike,ball,num);
}
숫자 야구게임인데, 과제로 만들어봤거든
근데 겁나 무식하게 한거같아서 더 줄일수 있는거 맞지?
딱히 간단하게 하는법은 숫자 3개를 배열로해서 반복문으로 검사하게하면 코드는 훨씬 간결해지고 가독성은 낫겠다
그리고 num=rand()9+100; //임의 수 범위 100~999 이거 아니지 않음?
아 배열이랑 반복문을 쓸수있겠구나 왜 생각을 못했지; 고맙다
엥 아냐?
어 잠만 내가 비주얼c++ 익스프레스 2010쓰는데 거기 써있는거랑 복사해서 여기 붙여놓은거랑 코드가 좀 다르다???
나도 C 랜덤 안써본지 오래되서 잘은 기억 안나지만 저건 그냥 9의 배수에 100 더해주는거라 니가 원하는 값은 안나올듯
저거 분명 num=rand()899+100;이라고 썼는데 밑에 one=num%10;이것도 그냥 one=num;이라고 되있고
ㅗㅓ 뭐야 덧글에서도 퍼센트가 짤리네
아 부호가 짤린거구나 ㅋㅋㅋㅋㅋㅋㅋ
어쨌든 답변 해줘서 고맙다 배열로 바꿔봐야지
저기 이렇게하면 정답 수 세자리에서 중복되는 숫자가 나올수도 있지 않을까? 444나 424 333 이런거 말야
내가 친구가 없어서 ㅠㅠ 야구를 해본적이 없지만 중복되는 숫자가 있으면 안되는 게임 아냐?