본문 바로가기

프로그래밍/C언어

쉽게 풀어쓴 C언어 Express 6장 Programming

1.키보드에서 하나의 문자를 읽어서 모음과 자음을 구분하는 프로그램을 작성하여 보자. , switch문을 사용한다.

 

#include <stdio.h>


void main()
{

     char al;

 

     printf("문자를 입력해주세요:");
     scanf("%c",&al); //문자를 입력받는다.
 

     switch(al)
     {
           case'a':
                printf("모음입니다.\n");break//a일경우 모음입니다 출력후 멈춤
           case'e':
                printf("모음입니다.\n");break//e일경우 모음입니다 출력후 멈춤
           case'i':
                printf("모음입니다.\n");break//i일경우 모음입니다 출력후 멈춤
           case'o':
                printf("모음입니다.\n");break//o일경우 모음입니다 출력후 멈춤
           case'u':
                printf("모음입니다.\n");break//u일경우 모음입니다 출력후 멈춤
           default:
                printf("자음입니다.\n");break/*자음이 많으므로 
                                                 모음을 제외한 나머지를 자음*/
     }
} 

 

 

 

 

2.사용자로부터 2개의 정수를 받아서 첫 번째 정수가 두 번째 정수로 나누어 떨어지는 지를 검사하는 프로그램을 작성하라. 즉 약수인지를 검사한다.


#include <stdio.h>


void main()
{
     int num1,num2,result;

 

     printf("정수를 입력해주세요:");
     scanf("%d",&num1);

 

     printf("정수를 입력해주세요:");
     scanf("%d",&num2);
 
     result=num1%num2;

     ​if(result==0)
          printf("약수입니다.\n");     //result가 0이면 약수입니다를 출력
     else
          printf("약수가 아닙니다.\n");     //result가 0이 아니면 약수가 아닙니를 출력
}

 

 


3.사용자로부터 3개의 정수를 읽어 들인 후에 if-else문을 사용하여 가장 작은 값을 결정하는 프로그램을 작성하라.


#include <stdio.h>

void main()
{
     int num1,num2,num3,result;

 

     printf("3개의 정수를 입력해주세요:");
     scanf("%d %d %d",&num1,&num2,&num3);
 
    
result=(num1<num2)?num1:num2;

 

     if(result>num3)
         printf("제일 작은 정수는 %d입니다.\n",num3);
     else
         printf("제일 작은 정수는 %d입니다.\n",result);
}

 

 

4.컴퓨터와 가위, 바위, 보 게임을 하는 프로그램을 작성하라. 컴퓨터는 사용자에게 알리지않고 가위, 바위, 보 중에서 임의로 하나를 선택한다. 사용자는 프로그램의 입력 안내 메시지에 따라서,3개 중에서 하나를 선택하게 된다. 사용자의 선택이 끝나면 컴퓨터는 누가 무엇을 선택하였고 누가 이겼는지, 비겼는지를 알려준다.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


void main()

{
     int user,com;

 

     printf("선택하시오(1:가위 2:바위 3:보):");
     scanf("%d",&user);
 
     srand((unsigned)time(NULL));
     com=rand()%3+1;
 

     if((1>user)||(user>3))
          printf("잘못 입력하셨습니다.");
     else
     {
          if(com==1)
          {
               if(user==1)
               {
                    printf("사용자:%d 컴퓨터:%d\n",user,com);
                    printf("비겼습니다.\n");
               }
               else if(user==2)
               {
                    printf("사용자:%d 컴퓨터:%d\n",user,com);
                    printf("이겼습니다.\n");
               }
               else
               {
                    printf("사용자:%d 컴퓨터:%d\n",user,com);
                    printf("졌습니다.\n");
               }
          }
          else if(com==2)
          {
               if(user==1)
               {
                    printf("사용자:%d 컴퓨터:%d\n",user,com);
                    printf("졌습니다.\n");
               }
               else if(user==2)
               {
                    printf("사용자:%d 컴퓨터:%d\n",user,com);
                    printf("비겼습니다.\n");
               }
               else
               {
                    printf("사용자:%d 컴퓨터:%d\n",user,com);
                    printf("이겼습니다.\n");
               }
          }
          else
          {
               if(user==1)
               {
                    printf("사용자:%d 컴퓨터:%d\n",user,com);
                    printf("이겼습니다.\n");
               }
               else if(user==2)
               {
                    printf("사용자:%d 컴퓨터:%d\n",user,com);
                    printf("겼습니다.\n");
               }
               else
               {
                    printf("사용자:%d 컴퓨터:%d\n",user,com);
                    printf("비겼습니다.\n");
               }
          }
     }
}

 

 

 

 


5.놀이 공원에서 롤러코스터에 타려면 키가 140cm 이상이고 나이가 10살 이상이어야 한다고 가정하자. 사용자에게 키와 나이를 질문한 후에 타도 좋습니다.”또는 죄송합니다.”를 출력하는 프로그램을 작성하여 보자.


#include <stdio.h>


void main()
{
     int h,age;

    

     printf("키를 입력하시오(cm):");
     scanf("%d",&h);

 

     printf("나이를 입력하시오:");
     scanf("%d",&age);

 

     if(h>=140&&age>=10)
         printf("타도 좋습니다.\n");
     else
         printf("죄송합니다.\n");
}

 

 


6.사용자로부터 몇 월인지를 정수로 입력받아서 jan와 같은 영어단어로 출력하는 프로그램을 작성하라


#include <stdio.h>

void main()
{
     int month;
    
     printf("월번호를 입력해주세요:");
     scanf("%d",&month);

   

     switch(month)
     {
          case 1:
               printf("Jan\n");break
          case 2:
               printf("Feb\n");break
          case 3:
               printf("Mar\n");break;
          case 4:
               printf("Apr\n");break;
          case 5:
               printf("May\n");break
          case 6:
               printf("Jun\n");break;
          case 7:
               printf("Jul\n");break;
          case 8:
               printf("Aug\n");break;
          case 9:
               printf("Sep\n");break;
          case 10:
               printf("Oct\n");break;
          case 11:
               printf("Nov\n");break;
          case 12:
               printf("Dec\n");break;
     }
}

 

 

 

 

7.사용자로부터 키를 입력받아서 표준 체중을 계산한 후에 사용자의 체중과 비교하여 저체중인지, 표준인지, 과체중인지를 판단하는 프로그램을 작성하라. 표준 체중 계산식은 다음을 사용하라.

 

#include <stdio.h>

 

void main()

{

     int weight,height;

     double standard;

 

     printf("체중과 키를 입력하시오(,체중):");

     scanf("%d %d",&height,&weight);

 

     standard=(height-100)*0.9;

 

     if(standard<weight)

        printf("과체중입니다.\n");

     else if(standard==weight)

        printf("표준입니다.\n");

     else

        printf("저체중입니다.\n")

}

 

 

 

 

 

8.놀이 공원의 자유이용권의 가격을 계산하는 프로그램을 작성하여 보자. 입장료는 다음과 같은 조건으로 결정된다. 현재 시간과 사용자의 나이를 입력받아서 지불하여야 하는 요금을 화면에 출력한다.

 

#include <stdio.h>

 

void main()

{

     int age,time;

 

     printf("현재 시간과 나이를 입력하시오(시간,나이):");

     scanf("%d %d",&time,&age);

 

     if(time<=17)

     {

          if(((3<=age)&&(age<=12))||65<=age)

             printf("요금은 25000원입니다.\n");

          else if((12<age)&&(age<65))

             printf("요금은 34000원입니다.\n");

          else

             printf("\n");

     }

     else if(time<24)

        printf("요금은 10000원입니다.\n");

     else

        printf("잘못 입력하셨습니다.\n");

}

 

 

 

 

9. 다음과 같이 정의되는 함수의 함수값을 계산하여 보자. 사용자로부터 x값을 입력받아서 함수값을 계산하여 화면에 출력한다. x는 실수이다.

 

#include <stdio.h>

 

void main()

{

     double x,y;

 

     printf("x의 값을 입력하시오:");

     scanf("%lf",&x);

 

     if(x<=0)

     {

          y=x*x*x-9*x+2;

          printf("f(x)의 값은 %f\n",y);

     }

     else if(x>0)

     {

          y=7*x+2;

          printf("f(x)의 값은 %f\n",y);

     }

     else

          printf("잘못 입력하셨습니다.\n");

}

 

 

 


 

10. (x, y) 좌표를 입력받아서 좌표가 속하는 사분면을 화면에 출력하는 프로그램을 작성하라.

 

#include <stdio.h>

 

void main()

{

     int x,y;

 

     printf("x,y의 값을 입력하시오:");

     scanf("%d %d",&x,&y);

 

     if(x>0&&y>0)

          printf("1사분면\n");

     else if(x<0&&y>0)

          printf("2사분면\n");

     else if(x<0&&y<0)

          printf("3사분면\n");

     else if(x>0&&y<0)

          printf("4사분면\n");

     else if(x==0&&y!=0)

          printf("y좌표\n");

     else if(x!=0&&y==0)

          printf("x좌표\n");

     else if(x==0&&y==0)

          printf("원점\n");

     else

          printf("잘못 입력하셨습니다.\n");

}

 

 

 



11. 사용자로부터 하나의 문자를 입력받아서 문자가 ‘R’이면 “Rectangle”이라고 출력한다. ‘T’이면 “Triangle”, ‘C’이면 “Circle”이라고 출력하는 프로그램을 작성한다. 그 외의 문자가 들어오면 “Unknown”이라고 출력한다.

 

#include <stdio.h>

 

void main()

{

     char var;

 

     printf("문자를 입력하시오:");

     scanf("%c",&var);

 

     switch(var)

     {

          case 'R':

              printf("Rectangle\n");break;

          case 'T':

              printf("Triangle\n");break;

          case 'C':

              printf("Circle\n");break;

          default:

              printf("Unknown\n");break;

     }

}