본문 바로가기
책./C언어 콘서트

5장(조건문) Programming #C언어 콘서트

by 낭람._. 2022. 7. 21.
반응형

1. 사용자로부터 정수를 받아서 홀수인지 짝수인지를 출력하는 프로그램을 작성하라.
정수를 입력하시오: 2
2 은 짝수입니다.
#include<stdio.h>
int main() {
    int a;

    printf("정수를 입력하시오: ");
    scanf("%d", &a);
    if(a % 2 == 0)
        printf("%d 은 짝수입니다.\n", a);
    else
        printf("%d 은 홀수입니다.\n", a);

    return 0;
}

 

2. 사용자가 신호등의 색깔을 입력하면 "정지", "주의", "진행"와 같은 문장을 출력하는 프로그램을 작성해보자.
   한 문자를 입력받을 때는 getchar() 함수를 사용한다.
신호등의 색깔 입력 (R, G, Y): r
정지!
#include<stdio.h>
int main() {
    char color;
    
    printf("신호등의 색깔 입력 (R, G, Y): ");
    color = getchar();

    if(color == 'R' || color == 'r')
        printf("정지!\n");
    else if(color == 'G' || color == 'g')
        printf("진행!\n");
    else if(color == 'Y' || color == 'y')
        printf("주의!\n");
    else
        printf("올바르지 않은 색상입니다.\n");
    
    return 0;
}

 

3. 사용자로부터 입력받은 두 수의 합과 차를 구하여 출력해보자. 두 수의 차는 큰 수에서 작은 수를 뺀 것으로 한다.
정수를 입력하시오: 30
정수를 입력하시오: 50
두수의 합은 80 입니다.
두수의 차는 20 입니다.
#include<stdio.h>
int main() {
    int a, b;

    printf("정수를 입력하시오: ");
    scanf("%d", &a);
    printf("정수를 입력하시오: ");
    scanf("%d", &b);

    printf("두수의 합은 %d 입니다.\n", a+b);
    printf("두수의 차는 %d 입니다.\n", a>b?a-b:b-a);

    return 0;
}

 

4. 삼각형의 세 변의 길이를 입력받아서 삼각형의 종류를 결정하는 프로그램을 작성하라. 많은 종류 중에서 정삼각형, 이등변 삼각형만 구별해보자.
삼각형의 세변을 입력하시요:
3 4 5
일반 삼각형
#include<stdio.h>
int main() {
    int a, b, c, max;

    printf("삼각형의 세변을 입력하시요:\n");
    scanf("%d %d %d", &a, &b, &c);

    max = a>b?a:b;
    max = max>c?max:c;

    if(max == a)
        if(max >= b+c) {
            printf("삼각형이 아닙니다.\n");
            return 0;
        }
    else if(max == b)
        if(max >= a+c) {
            printf("삼각형이 아닙니다.\n");
            return 0;
        }
    else
        if(max >= a+b) {
            printf("삼각형이 아닙니다.\n");
            return 0;
        }


    if(a == b && b == c) 
        printf("정삼각형\n");
    else if((a==b && b != c) || (a == c && c != b) || (c == b && a != b))
        printf("이등변 삼각형\n");
    else
        printf("일반 삼각형\n");

    return 0;
}

 

5. 근로 소득세를 계산하는 프로그램을 작성해보자. 근로 소득세율은 다음 표와 같다.
   사용자가 자신의 과세 표준 금액을 입력하면 근로 소득세를 계산하여 주는 프로그램을 작성해보자.
   만약 자신의 소득이 3000만원이면 소득 중에서 1000만 원 이하는 8%를 적용하고 초과하는 부분은 17%의 세율이 매겨진다.
과세표준 세율
1000만 원 이하 8%
1000만 원 초과 4000만 원 이하 17%
4000만 원 초과 8000만 원 이하 26%
8000만 원 초과 35%
과세 표준을 입력하시오(만원): 1600
소득세는 182만원입니다.
#include<stdio.h>
int main() {
    int income;
    printf("과세 표준을 입력하시오(만원): ");
    scanf("%d", &income);

    if(income <= 1000)
        printf("소득세는 %.0lf만원입니다.\n", income*0.08);
    else if(income <= 4000)
        printf("소득세는 %.0lf만원입니다.\n", 1000*0.08 + (income-1000)*0.17);
    else if(income <= 8000)
        printf("소득세는 %.0lf만원입니다.\n", 1000*0.08 + 3000*0.17 + (income-4000)*0.26);
    else
        printf("소득세는 %.0lf만원입니다.\n", 1000*0.08 + 3000*0.17 + 4000*0.26 + (income-8000)*0.35);

    return 0;
}

 

6. 절대 평가로 학생들의 학점을 계산하는 프로그램을 작성해보자. 한 학생에 대하여 중간고사와 기말고사를 읽어서 아래의 규칙에 따라서 학생들의 학점을 결정하여 출력한다.
   규칙 1. 중간고사, 기말고사를 차례대로 사용자로부터 읽는다.
   규칙 2. 중간고사와 기말고사의 평균값이 90점 이상이면 A, 80점 이상이면 B, 70점 이상이면  C, 60점 이상이면 D, 60점 미만이면 F 학점이라고 출력하고 종료한다.
중간 고사 점수를 입력하시오 :90
기말 고사 점수를 입력하시오 :80
당신의 학점은 B학점입니다.
#include<stdio.h>
int main(){
    int mid, final;
    
    printf("중간 고사 점수를 입력하시오 :");
    scanf("%d", &mid);
    printf("기말 고사 점수를 입력하시오 :");
    scanf("%d", &final);

    if((mid+final)/2 >= 90)
        printf("당신의 학점은 A학점입니다.\n");
    else if((mid+final)/2 >= 80)
        printf("당신의 학점은 B학점입니다.\n");
    else if((mid+final)/2 >= 70)
        printf("당신의 학점은 C학점입니다.\n");
    else if((mid+final)/2 >= 60)
        printf("당신의 학점은 D학점입니다.\n");
    else
        printf("당신의 학점은 F학점입니다.\n");

    return 0;
}

 

7. 이차 방정식 ax^2+bx+c=0의 근을 계산하는 프로그램을 작성해보자.
   1. 사용자에게 이차 방정식의 계수 a, b, c를 입력하도록 한다.
   2. 만약 a가 0이면 근은 -c/b이다.
   3. 만약 판별식 sqrt(b^2-4ac)가 음수이면 실근은 존재하지 않는다.
   4. 위의 조건에 해당되지 않으면 다음과 같은 공식을 이용하여 실근을 구한다.
      x = (-b+sqrt(b^2-4ac))/2a, x = (-b-sqrt(b^2-4ac))/2a
계수 a를 입력하시오 : 3
계수 b를 입력하시오 : 8
계수 c를 입력하시오 : 5
위의 이차 방정식의 실근은 -1.00과 -1.67입니다.
#include<stdio.h>
#include<math.h>
int main(){
    int a, b, c;

    printf("계수 a를 입력하시오 : ");
    scanf("%d", &a);
    printf("계수 b를 입력하시오 : ");
    scanf("%d", &b);
    printf("계수 c를 입력하시오 : ");
    scanf("%d", &c);

    if(a == 0)
        printf("위의 이차 방정식의 실근은 %.2lf입니다.\n", -c/b);
    else if(sqrt(pow(b,2)-(4*a*c)) < 0)
        printf("위의 이차 방정식의 실근은 존재하지 않습니다.\n");
    else
        printf("위의 이차 방정식의 실근은 %.2lf과 %.2lf입니다.\n", (-b+sqrt(pow(b,2)-(4*a*c)))/(2*a), (-b-sqrt(pow(b,2)-(4*a*c)))/(2*a));

    return 0;
}

 

반응형

댓글