본문 바로가기
C언어

[C언어] (Hangman) 정답이 되는 3글자의 영단어를 입력한 후 엔터키를 누릅니다. 정답을 맞추기 위하여 한 글자씩 입력한 후 엔터키를 누른다. 5번시도.

by 이얏호이야호 2020. 5. 23.

Hangman 정답이 되는 글자를 찾는 프로그램을 가지고 왔습니다.

5번의 시도안에 맞춘다면 프로그램은 맞추는대로 종료가되고,

총 5번의 시도안에 맞추지 못한다면 프로그램은 종료됩니다.

물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때

혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!

힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고

답안을 확인해보세요

 

더보기

입력 예시    출력 예시

cat           

a              _ a _ //a를 맞췄더니 a가 나타납니다.

b             _ a _ //없는 글자 b를 입력했더니 그대로 상태를 유지합니다.

c             c a _ //c를 맞췄더니 c가 나타납니다.

t            c a t // c a t모두 맞추자 프로그램은 종료됩니다.



dog

a           _ _ _ //없는 글자 a를 입력했더니 그대로 상태를 유지합니다.

b            _ _ _ //없는 글자 b를 입력했더니 그대로 상태를 유지합니다.

c            _ _ _ //없는 글자 c를 입력했더니 그대로 상태를 유지합니다.

d           d _ _ //d를 맞췄더니 d가 나타납니다.

e           d _ _ //없는 글자 e를 입력했더니 그대로 상태를 유지하고 5번의 기회가 끝나 프로그램을 종료합니다.

 

#include<stdio.h>

#include <string.h>

#include<stdlib.h>

int main(){

   char str[3];								//정답글자(맞춰야하는글자)

   char compare[3] = {'_', '_', '_'};		// 맞추면 _ 가 맞춘 글자로 바뀜

   char input;								//입력

   int over=0;								//3글자를 맞추면 프로그램 종료

   gets(str);								//정답입력				

   for(int i=0; i < 5;i++){					//5번의 기회

      //글자를 하나씩 입력

      getchar();

      for( int j = 0 ;j < 3; j++){

         if(        ){
			//글자가 맞는다면
            //횟수를 늘림           
			//맞는 칸에 _ 대신 글자를 입력
            //글자를 출력
            

         }else{

           //글자가 맞는게 아니라면 출력

         }

         if(over==3){
			//종료
            exit(0);

         }                              

      }

      printf("\n");

   }

}

 

 

 

 

 

 

더보기

입력예시    출력예시

cat           

a              _ a _ //a 를 맞췄더니 a가 나타납니다.

b             _ a _ //없는 글자 b를 입력했더니 그대로 상태를 유지합니다.

c             c a _ //c를 맞췄더니 c가 나타납니다.

t            c a t // c a t모두 맞추자 프로그램은 종료됩니다.



dog

a           _ _ _ //없는 글자 a를 입력했더니 그대로 상태를 유지합니다.

b            _ _ _ //없는 글자 b를 입력했더니 그대로 상태를 유지합니다.

c            _ _ _ //없는 글자 c를 입력했더니 그대로 상태를 유지합니다.

d           d _ _ //d를 맞췄더니 d가 나타납니다.

e           d _ _ //없는 글자 e를 입력했더니 그대로 상태를 유지하고 5번의 기회가 끝나 프로그램을 종료합니다.

 

#include<stdio.h>

#include <string.h>

#include<stdlib.h>

int main(){

   char str[3];				//정답글자(맞춰야하는글자)

   char compare[3] = {'_', '_', '_'};		//맞추면 _가 맞춘 글자로 바뀜

   char input;				//입력

   int over=0;				//3글자를 맞추면 프로그램 종료 카운트

   gets(str);				//정답입력(ex dog)

   for(int i=0; i < 5;i++){			//총5번의 기회

      scanf("%c", &input);			//글자를 하나씩 입력

      getchar();

      for( int j = 0 ;j < 3; j++){

         if(input == str[j]){			//글자가 맞는다면

            over++;				//횟수를늘림

            compare[j] = input;		//맞는 칸에 _대신 글자를 입력(ex. _ o _)

            printf("%c ",compare[j]);		//글자를 출력

         }else{

            printf("%c ",compare[j]);		//글자가 맞는게 아니라면 출력

         }

         if(over==3){

            exit(0);				//3글자를 모두 맞췄다면 프로그램 종료

         }                              

      }

      printf("\n");

   }

}

 

 

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글