본문 바로가기
C 프로그래밍

독학으로 배우는 C언어 022 조건문 다중 if 문

by 솔토지빈 2024. 12. 5.
반응형

독학으로 배우는 C언어 022 조건문 다중 if

Contents

     

    1. 다중 if

     

    비교나 선택을 해야 할 조건이 많은 경우에 if 문 내부에 if문을 여러 개 사용하는 것을 다중 if 문이라고 한다.

     

    실습 1: 소문자 판별 프로그램

    입력한 문자가 소문자인지를 판별하는 프로그램을 작성해 보자.(ifmult01.c)

    #define _CRT_SECURE_NO_WARNINGS 
    #include <stdio.h>
    int main(void)
    {
        char a;
        a = getchar();
        if (a >= 'a')
            if (a <= 'z')
                printf("%c 는 소문자 입니다.", a);
        return 0;
    }

     

    설명 : 행 설명

    첫 번째 if 문에서 입력받은 문자가 소문자 a (아스키 코드값 97) 보다 크거나 같으면 조건이 참이므로 두 번째 조건을 확인한다.

    입력 받은 문자가 두 번째 조건인 z ( 아스키 코드값 122) 보다 작거나 같으면 소문자 범위 안에 해당되므로 if문을 수행한다.

    만약 두 조건 중 하나라도 만족하지 않으면 if 문을 수행하지 않는다.

     

    실습 2: 양수 음수 판별 1

    수를 입력받아 양수이면 양수 음수이면 음수라고 출력하는 프로그램을 작성해 보자.(ifmult02.c)

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    main()
    {
        int a;
        printf("정수입력 : ");
        scanf("%d", &a);
        if (a >= 0)
            printf("%d는 양수 \n", a);
        if (a < 0)
            printf("%d는 음수 \n", a);
        return 0;
    }

     

    위 내용을 다음과 같이 프로그래밍할 수 있다.(ifmult03.c)

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    main()
    {
        int a;
        printf("정수입력 : ");
        scanf("%d", &a);
        if (a >= 0)
            printf("%d는 양수 \n", a);
        else if (a < 0)
            printf("%d는 음수 \n", a);
        return 0;
    }

     

    실습 3: 양수 음수 판별 2

    입력된 데이터가 양수이면 양수입니다.” 음수이면 음수입니다.” 0 이면 “ 0입니다.” 가 출력되는 프로그램을 작성해 보자.(ifmult04.c)

    #define _CRT_SECURE_NO_WARNINGS 
    #include <stdio.h>                      
    void main()
    {
        int n;
        printf(" 숫자를 입력하세요 ");
        scanf("%d", &n);
        if (n > 0)
            printf("%d 는 양수입니다\n", n);
        else {
            if (n < 0)
                printf(" %d 는 음수입니다\n", n);
            else
                printf("0 입니다 \n");
        }
        return 0;
    }

     

    실습 4: 성적 계산 1

    국어, 영어, 수학 점수를 입력받아 평균을 계산하여 평균점수가 90점 이상이면 “A” 80점 이상이면 “B” 70점 이상이면 “C” 60점 이상이면 “D” 60점이하이면 “F”를 출력하는 프로그램을 작성해보자.(ifmult05.c)

    #define _CRT_SECURE_NO_WARNINGS 
    #include <stdio.h>
    main() {
        int kor, eng, mat;
        float ave;
    
        printf("국어 점수를 입력하세요 : ");
        scanf("%d", &kor);
        printf("영어 점수를 입력하세요 : ");
        scanf("%d", &eng);
        printf("수학 점수를 입력하세요 : ");
        scanf("%d", &mat);
        ave = (kor + eng + mat) / 3;
        printf("점수의 평균은 %f입니다.\n", ave);
    
        if (ave >= 90)
            printf("당신의 점수는 A입니다.");
        else if (ave >= 80)
            printf("당신의 점수는 B입니다.");
        else if (ave >= 70)
            printf("당신의 점수는 C입니다.");
        else if (ave >= 60)
            printf("당신의 점수는 D입니다.");
        else
            printf("당신의 점수는 F입니다.");
    }

     

    실습 5: 성적 계산 2

    위 프로그램에서 학점을 변수로 사용하여 출력하는 프로그램으로 변경해보자.(ifmult06.c)

    #define _CRT_SECURE_NO_WARNINGS  
    #include <stdio.h>
    void main()
    {
        int a, b, c, hap, avg;
        char ra;
        printf(" 국어 점수를 입력하세요 ");
        scanf("%d", &a);
        printf(" 수학 점수를 입력하세요 ");
        scanf("%d", &b);
        printf(" 영어 점수를 입력하세요 ");
        scanf("%d", &c);
        hap = a + b + c;
        avg = hap / 3;
        if (avg >= 90)
            ra = 'A';
        else if (avg >= 80)
            ra = 'B';
        else if (avg >= 70)
            ra = 'C';
        else if (avg >= 60)
            ra = 'D';
        else
            ra = 'F';
        printf("당신의 점수는 %c 입니다.\n", ra);
    }

     

    실습 6: 수치 범위 구분하기

    정수를 입력하여 10미만 ,10에서 99, 100 에서 999, 1000 이상으로 구분하여 출력하는 프로그램을 작성해보자.(ifmult07.c)

    #define _CRT_SECURE_NO_WARNINGS 
    #include <stdio.h>                      
     void main()                                  
      {                                                                 
     int a;                                                            
     printf(" 정수를 입력하세요 ");                                    
     scanf("%d",&a);                                                   
      if ( a>100){                                                     
          if (a>=1000)  /* a 가 100 이상이며  1000 이상일때 */
          printf("%d 는 1000 이상 \n",a);                              
       else           /* a 가 100 이상이며 1000 미만일때  */
          printf("%d 는 100 에서 999\n",a);                            
      }                                                                
      else{                                                            
        if ( a<10)    /*  a 가 100미만이며 10 미만일때   */
          printf("%d 는 10 미만 \n",a);                                
       else           /*  a 가 100미만이며 10 이상일때   */
          printf("%d 는 10 에서 99\n",a);                              
       }                                                               
      }

     

    실습 7: 가장 큰 수 출력하기

    세 수를 입력받아 가장 큰수를 출력하는 프로그램을 작성해 보세요.(ifmult08.c)

    #define _CRT_SECURE_NO_WARNINGS  
    #include <stdio.h>                     
    void main()
    {
    	int a, b, c, max;
    	printf(" 첫번째 수를 입력하세요 ");
    	scanf("%d", &a);
    	printf(" 두번째 수를 입력하세요 ");
    	scanf("%d", &b);
    	printf(" 세번째 수를 입력하세요 ");
    	scanf("%d", &c);
    
    	if (a > b)
    		if (a > c) max = a;
    		else
    			max = c;
    	else if (b > c) max = b;
    	else
    		max = c;
    	printf("가장 큰값 = %d\n", max);
    }

     

    반응형

    댓글