본문 바로가기

C- Programming/배열

숫자 야구 프로그램 3개의 숫자를 입력 받아 숫자와 위치가 일치하면 strike 숫자만 같으면 ball 숫자와 위치를 맞췄을때 끝나는 소스를 작성해보자

#include<stdio.h>
int main()
{
 int a[3]={0};
 int b[3]={0};
 int i;
 int j;
 int strike=0;
 int ball=0;

 printf("정답 3개를 입력해 주십시오 : \n"); //정답 3개를 입력해 주라고 출력
 scanf("%d %d %d", &a[0], &a[1], &a[2]); //입력 받은 숫자 3개를 저장

while(a[0]>=0)//계속 반복하는 while문
{
 printf("답 3개를 입력해 주십시오 : \n"); //숫자를 세개 찍어서 넣어주는 것 (맞추기 위해서)
 scanf("%d %d %d",&b[0], &b[1], &b[2]);//문제의 정답을 맞출 숫자3개 입력 받은것을 저장

 for(i=0; i<3; i++) //3번 반복하는 for문
 {
  if(a[i]==b[i])//정답과 넣어준 수가 같고 위치도 같을때
   strike= strike +1; //strike1증가
  
  for(j=0; j<3; j++) //3번 반복하는 for문
  {
   if(i!=j)//배열자리가 다를때 시행
   {
    if(a[i]==b[j])// 값이 같을때
    ball = ball +1; //ball 1증가
   }
  }
 }
 
 printf("%dstrike \n",strike); //답을 알기 위한 힌트 strike의 값을 보여준다
 printf("%dball \n",ball); //답을 알기 위한 힌트 ball의 값을 보여준다
 if(strike==3) //만약 strike가 3이면 반복문을 끝낸다.
  return 0;
 else //3이 아니라면 답을 못 맞췄으므로 다시 계속한다.
 strike = 0; //다시 0으로 초기화
 ball = 0; //다시 0으로 초기화
}

 return 0; //함수 초기화
}