야구게임!!! 질문 있습니다.!!!
든솔
다른 부분은 다 이해 했습니다.. 이부분 모르겠습니다..
#include stdio.h
#include stdlib.h
#include time.h
void ComSel(int *arr); // 컴퓨터가 3개의 숫자를 선택
int IsValid(int *arr); // 사용자 입력 유효성 검사. 유효하면 1 리턴
void UsrSel(int *arr); // 사용자 3개의 숫자를 입력.
int Compare(int *arr1, int *arr2); // 선택 결과 비교.
int main(void)
{
int comArr[3];// 컴퓨터에 의한 선택
int usrArr[3];// 사용자에 의한 선택
int result=0;
printf(Start Game! \n);
ComSel(comArr);
while(result!=1)
{
UsrSel(usrArr);
result=Compare(comArr, usrArr);
printf(\n);
}
printf(Game End! \n);
return 0;
}
void ComSel(int *arr)// 컴퓨터가 3개의 숫자를 선택
{
srand((int)time(NULL));
//selection 1
arr[0]=rand()%10;
//selection 2
do{
arr[1]=rand()%10;
}while(arr[0]==arr[1]);
//selection 3
do{
arr[2]=rand()&10;
}while((arr[0]==arr[2])||(arr[1]==arr[2]));
}
int IsValid(int *arr)
{
if(arr[0]==arr[1]||arr[0]==arr[2]||arr[1]==arr[2])
return 0;
else
return 1;
}
void UsrSel(int *arr)
{
int valid;
printf(3개의 숫자 선택 : );
while(1)
{
scanf(%d %d %d, &arr[0], &arr[1], &arr[2]);
valid=IsValid(arr);
if(valid==1)
break;
else
printf(잘못된 입력, 재 입력 : );
}
}
int Compare(int *arr1, int *arr2)
{
static int count=0;
int strike=0, ball=0;
int i, j;
for(i=0; i3; i++)
{
for(j=0; j3; j++)
{
if(arr1[i]==arr2[j])
{
i==j? strike++:ball++;
break;
}
}
}
count++;
printf(%d번째 도전 결과 : %dstrike, %dball!!\n, count, strike, ball);
if(strike==3)
return 1;
else
return 0;
}
이부분만 모르겠습니다!!!
//selection 3
do{
arr[2]=rand()&10;
}while((arr[0]==arr[2])||(arr[1]==arr[2]));
아주 자세하게 설명좀 해주세요 ㅠㅠ!!
-
Hotpants
오타 같네요
-
돋가이
do{ arr[2]=rand()&10;
}while((arr[0]==arr[2])||(arr[1]==arr[2])); 이부분에서요
arr[2]=rand()&10; 무슨말이죠?
rand()%10으로 쓰면 안되나요? -
곰탱이
야구 게임은 세개의 숫자가 서로 달라야 하잖아요. 그래서 두번째 숫자를 뽑은 후 첫번째 숫자와 같은지 비교를 해서 같으면 계속 루프 안에 있고 달라야 루프 빠져나오고, 3번째 숫자는 1,2번째 숫자와 모두 비교를 하는 겁니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692483 | C언어 함수, Header | 떠나간그놈 | 2025-04-23 |
2692451 | 이 문제좀 풀어주세요 ^^ | 게자리 | 2025-04-23 |
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |