본문 바로가기
프로그램/C언어 1000제

C언어 19제] C언어 콘서트 CHAPTER 6 p242 도전문제 1, 2

by 건티 2021. 11. 25.
728x90

출처 : 반크(독도포스터)

 

도전문제]

1) 뺄셈이나 곱셈, 나눗셈 문제도 출제할 수 있는가?

2) 난수 발생기의 씨드를 현재 시간으로 초기화하는 srand(time(NULL))을 호출한 후에 난수를 발생시켜보자.

 

 

참고풀이]

//Dev-C++ 5.11로 작업함.
#include <stdio.h>
#include <stdlib.h> //rand(), srand()
#include <time.h> //time()

int main()
{
   int i,j;//반복변수 
   int ans;//사용자 답 변수 
   int x,y;//임의의 수를 넣을 변수 
   int chk;//+(1), -(2), *(3), /(4) 부호 변수 
   int key;//산수 문제를 계속 출제할 지 체크변수 

   //문제를 출제할 때 마다 다른 문제를 출제하기 위하여
   //시간별로 문제를 발생할 수 있도록 srand()로 초기화 설정한다. 
   srand(time(NULL));

   printf("산수 문제를 자동으로 출제합니다.\n");
   printf("(정답을 맞출 때까지 계속 반복합니다.)\n");
   key=0; 
   while(1)
   {
      chk=rand()%4+1;//1~4 중 임의의 수를 발생한다. 
      x=rand()%100;//0~99사이의 임의의 수를 발생한다. 
      y=rand()%100;//0~99사이의 임의의 수를 발생한다.

      if(chk==1)
      {
         printf("%d + %d = ",x,y);
         scanf("%d",&ans);
         while(x+y!=ans)
         {
            printf("틀렸습니다.\n");
            printf("%d + %d = ",x,y);
            scanf("%d",&ans);
         }
         printf("맞았습니다.\n");
         key=1;
      }
      else if(chk==2)
      {
         printf("%d - %d = ",x,y);
         scanf("%d",&ans);
         while(x-y!=ans)
         {
            printf("틀렸습니다.\n");
            printf("%d - %d = ",x,y);
            scanf("%d",&ans);
         }
         printf("맞았습니다.\n");
         key=1;
      }
      else if(chk==3)
      {
         printf("%d x %d = ",x,y);
         scanf("%d",&ans);
         while(x*y!=ans)
         {
            printf("틀렸습니다.\n");
            printf("%d x %d = ",x,y);
            scanf("%d",&ans);
         }
         printf("맞았습니다.\n");
         key=1;
      }
      else
      {
         //나누기는 분모가 0이면 안된다.
         if(y!=0)
         {
            printf("몫만 입력하세요.\n");
            printf("%d / %d = ",x,y);
            scanf("%d",&ans);
            while((int)(x/y)!=ans)
            {
               printf("틀렸습니다.\n");
               printf("%d / %d = ",x,y);
               scanf("%d",&ans);
            }
            printf("맞았습니다.\n");
            key=1;
         }
      }

      if(key) break;
   }

   return 0;
}

 

참고풀이 결과]

 

 

 

 

대한민국의 아름다운 영토, 독도의 여름

 

반응형

댓글