2 분 소요

복학생 갱생 프로젝트 2일차

스터디 플랜

[ 스터디 공지 ]
저번시간에 오리엔테이션 진행과 함께 C언어에서 기초문법,입출력,연산자에 대해 공부했다. 오늘은 제어문에 대해서 학습하려고 한다.

[ 스터디 구성원 ]
  • 정승제
  • 조진새진
  • 이타치가든

  • [ 스터디 커리큘럼 ]
    1_기초문법,입출력,연산자
    2_제어문
    3_전처리
    4_포인터,배열,함수
    5_문자열,구조체
    6_동적할당1
    7_동적할당2

    실습#2_제어문 - 조건문

    조건문

    - If

    if(num1>num2){
        printf("num1이 num2보다 크다. \n");
        printf("%d > %d \n", num1, num2);
    }
    
    • num1이 num2보다 크면 실행
    if(num1>num2)
        printf("num1이 num2보다 크다. \n");
    
    • 한 줄이면 중괄호 생략 가능


    int main(){
        int num;
        printf("정수 입력: ");
        scanf("%d",&num);
        
        if(num<0)
            printf("입력 값은 0보다 작다. \n");
        
        if(num>0)
            printf("입력 값은 0보다 크다. \n");
        
        if(num==0)
            printf("입력 값은 0이다. \n");
        
        return 0;
    }
    
    실행결과
    	정수 입력: 3
    	입력 값은 0보다 크다.
    
    실행결과
    	정수 입력: 0
    	입력 값은 0이다.
    


    int main(){
        int opt;
        double num1, num2;
        double result;
        
        printf("1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 \n");
        printf("선택? ");
        scanf("%d",&opt);
        printf("두 개의 실수 입력: ");
        scanf("%lf %lf",&num1, &num2);
        
        if(opt==1)
            result=num1+num2;
        if(opt==2)
            result=num1-num2;
        if(opt==3)
            result=num1*num2;
        if(opt==4)
            result=num1/num2;
        
        printf("결과: %f \n", result);
        return 0;
    }
    
    실행결과
    	1.덧셈 2.뺄셈 3.곱셈 4.나눗셈
    	선택? 3
    	두 개의 실수 입력: 2.14 5.12
    	결과: 10.956800
    
    • 프로그램 구성상 사칙연산 중 하나만 실행이 된다. 그럼에도 불구하고 프로그램 사용자가 덧셈연산을 선택할지라도 총 4번의 조건검사를 해야한다는 단점이 있다.


    - If ~ else

    if(num1>num2){
        printf("num1이 num2보다 크다. \n");
        printf("%d > %d \n", num1, num2);
    }
    else{
        printf("num1이 num2보다 크지 않다. \n");
        printf("%d <= %d \n", num1, num2);
    }
    
    • if문 : num1이 num2보다 크면 실행
    • else문 : num1이 num2보다 크지 않으면 실행


    int main(){
        int num;
        printf("정수 입력: ");
        scanf("%d",&num);
        
        if(num<0)
            printf("입력 값은 0보다 작다. \n");
        else
            printf("입력 값은 0보다 작지 않다. \n");
        
        return 0;
    }
    
    실행결과
    	정수 입력: 7
    	입력 값은 0보다 작지 않다.
    
    • if ~ else문은 하나의 문장이다.
    • 따라서 if 와 else 사이에 다른 문장이 삽입될 수 없다.


    - If ~ else if ~ else

    int main(){
        int opt;
        double num1, num2;
        double result;
        
        printf("1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 \n");
        printf("선택? ");
        scanf("%d",&opt);
        printf("두 개의 실수 입력: ");
        scanf("%lf %lf",&num1, &num2);
        
        if(opt==1)
            result=num1+num2;
        else if(opt==2)
            result=num1-num2;
        else if(opt==3)
            result=num1*num2;
        else
            result=num1/num2;
        
        printf("결과: %f \n", result);
        return 0;
    }
    
    • 합리적으로 완성된 사칙연산 계산기 프로그램


    - Switch Case

    switch case



    int main(){
        int num;
        printf("1이상 5이하의 정수 입력: ");
        scanf("%d",&num);
        switch(num){
            case 1:
                printf("1은 ONE \n");
                break;
            case 2:
                printf("2은 TWO \n");
                break;
    		case 3:
                printf("3은 THREE \n");
                break;
            case 4:
                printf("4은 FOUR \n");
                break;
            case 5:
                printf("5은 FIVE \n");
                break;
            default:
                printf("I don't know! \n");
        }
        return 0;
    }
    
    실행결과
    	1이상 5이하의 정수 입력: 3
    	3은 THREE
    


    int main(){
        char sel;
        printf("M 오전, A 오후, E 저녁 \n");
        printf("입력: ");
        scanf("%c",&sel);
        
        switch(sel){
            case 'M':
            case 'm':
                printf("Morning \n");
                break;
            case 'A':
            case 'a':
                printf("Afternoon \n");
                break;
            case 'E':
            case 'e':
                printf("Evening \n");
                break;    
        }
        return 0;
    }
    
    실행결과
    	M 오전, A 오후, E 저녁
    	입력 : M
    	Morning
    


    퀴즈

    • 두 개의 정수를 입력받아 큰 수에서 작은 수를 뺀 차를 출력하라.

      • 입력: 10 30

      • 출력: 20


      • 입력: 40 10

      • 출력: 30


    • 성적을 입력받아 A+에서 F까지 출력
      • 예: 95 -> A+, 67 -> D+, 82 -> B


    • 1부터 9,999까지의 범위에 포함되는 정수 N을 거꾸로 출력하라.
      • 입력(정수): 2187
      • 출력(거꾸로): 7812


    • 지하철 요금이 얼마인지 계산하시오. 역 수에 따른 요금 계산은 다음과 같다
      • 규칙]
        • 기본: 5 정거장까지 600원, 10 정거장까지 700원
        • 추가: 2 정거장마다 50원
      • 입력(지나는 정거장 수) = 13
      • 출력: 850원




    후기

    아직까지는 내용이 매우 쉬워서 그런지 수강생들이 수업을 잘 따라오고 있다. 다만 퀴즈 문제를 풀 때 좀 귀찮아하는 거 같다. 뭐 하여튼 EZ

    댓글남기기