씨언어 과제 ㅜ
Together
질문 제목 :
씨언어 과제
씨언어
질문 내용 :
제가 진짜 씨언어 너무 어려워가지고 ㅜㅜ
이해를 해야하는데 이게 참 이해가 안되네여ㅜㅜ 그래서 도움을 받을수 밖에 없네요 ㅜ
#include stdio.h //printf(),scanf(),fflush()
#include stdlib.h //system(),rand(), srand()
#include time.h //time()
int newnum(char *number); //컴퓨터가 난수 3개를 받습니다.
int innum(char *number); //숫자를 입력합니다.
int check(char *cnum,char *hnum,int count); //정답여부 판별합니다. 10회 이내로 ^^
int main()
{
int cnt; //10회 이내에 정답을 맞춰야함.
char num[3]; //컴퓨터가 생성해낸 답.
char inum[3]; //사람이 예상한 답.
system(cls);
printf(야구 게임을 시작 합니다.\n\n);
newnum(num);
for(cnt=1;cnt=10;cnt++)
{
innum(inum); //사람이 답을 맞춘다.
if(check(num,inum,cnt)==0) //check 함수로부터 정답인지 아닌지 결과값을 받는다.
{
printf(congraturation !!\n);getchar();
break;
}
if(cnt==10) //10회 이내에 못맞추면 게임 오버.
{
printf(정답은 %d%d%d 입니다.\n,num[0],num[1],num[2]);
printf( g a m e o v e r\n);getchar();
break;
}
}
return 0;
}
int check(char *cnum,char *hnum,int count)
{
int x,y;
int strike=0,ball=0;
for(x=0;x3;x++)
{
for(y=0;y3;y++)
{
if(*(hnum+x)==*(cnum+y))
if(x==y)
strike++;
else
ball++;
}
}
printf(결과는 \n);
printf( %d 회 : %d strike %d ball \t,count,strike,ball);
if(strike==3)
return 0; //정답이면 0
else
return 1; //정답을 못맞추면 1
}
int innum(char *number)
{
int a;
for(;;)
{
printf(정답을 입력하세요 : );
scanf_s(%d,&a);
if(a100 || a=1000) //예외처리
{
printf(\n잘못 입력 하였습니다 !! );
printf(다시 입력하여 주세요.\n\n);
fflush(stdin);
continue;
}
*(number+0)=a/100;
*(number+1)=a%100/10;
*(number+2)=a%10;
//중복번호 입력 방지.
if(*(number+0)==*(number+1) || *(number+1)==*(number+2) || *(number+0)==*(number+2))
{
printf(같은 숫자를 넣어서는 안됩니다.! );
printf(다시 입력하여 주세요.\n);
fflush(stdin);
continue;
}
break;
}
return 0;
}
int newnum(char *number)
{
int x;
srand((unsigned)time(null));
for(x=0;x3;x++)
{
*(number+0)=rand()%9+1;
*(number+1)=rand()%9+1;
*(number+2)=rand()%9+1;
//중복번호 생성 방지.
if(*(number+0)!=*(number+1) && *(number+1)!=*(number+2) && *(number+0)!=*(number+2))
break;
}
return 0;
}여기서 1단계 2단계 이런식으로 단계를 넣을려는데요 ㅜ
그리고 1단계는 3글자
2단계는 4글자
이렇게 넣으려는데 ㅜㅜ 좀 도와 주세요 ㅠㅠ
이게 제가 만든것이 아니고 다른사람이만든 야구게임 소스예여 ㅠ