profile image

L o a d i n g . . .

12.5 심사문제 : 덧셈, 뺄셈하기

 

문제 : 표준 입력으로 실수 두 개가 입력됩니다. 다음 소스 코드를 완성하여 입력된 두 실수를 더한 값에서 4.5를 감소시킨 값이 출력되게 만드세요.

정답 :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    float num1;
    float num2;
    float num3;

    scanf("%f %f", &num1, &num2);

    num3 = num1 + num2;

    num3 -= 4.5;

    printf("%f\n", num3);

    return 0;
}

 

 

13.7 심사문제 : 증가, 감소 연산자 사용하기

 

문제 : 표준 입력으로 정수, 실수, 문자가 입력됩니다. 다음 소스 코드를 완성하여 입력된 정수와 실수는 1 증가시키고, 문자는 알파벳 순서에서 바로 앞 문자가 출력되게 만드세요.

정답 :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    int num1;
    float num2;
    char c1;

    scanf("%d %f %c", &num1, &num2, &c1);

    num1++;
    num2++;
    c1--;

    printf("%d %f %c\n", num1, num2, c1);

    return 0;
}

 

 

14.5 심사문제 : 원의 넓이 구하기

 

문제 : 표준 입력으로 원의 지름(실수)이 입력됩니다. 다음 소스 코드를 완성하여 원의 넓이가 출력되게 만드세요. 단, 원주율은 M_PI를 사용하세요.

정답 :

#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif

int main()
{
    float diameter;
    float radius;
    float area;

    scanf("%f", &diameter);

    radius = diameter / 2;
    area = radius * radius * M_PI;

    printf("%f\n", area);

    return 0;
}

 

 

15.5 심사문제 : 정수의 각 자릿수를 역순으로 출력하기

 

문제 : 표준 입력으로 만 단위의 정수 하나가 입력됩니다. 입력된 정수의 각 자릿수를 역순으로 출력하는 프로그램을 만드세요(scanf 함수 전에 문자열을 출력하면 안 됩니다). 예를 들어 43561이라면 1 6 5 3 4를 출력하면 됩니다. 각 자릿수는 공백으로 띄우세요.

정답 :

#include <stdio.h>

int main(void){
    
    int num;
    int count;
    
    scanf("%d",&num);
    
    count = num%10;
    num/=10;
    printf("%d ",count);
    
    count = num%10;
    num/=10;
    printf("%d ",count);
    
    count = num%10;
    num/=10;
    printf("%d ",count);
    
    count = num%10;
    num/=10;
    printf("%d ",count);
    
    printf("%d",num);
    
    return 0;

}

10으로 나눈 나머지를 구해서 printf로 출력한 뒤 원래 값을 10으로 나눠서 다시 저장한다. 이런 과정으로 5번을 반복하면 각 자릿수를 역순으로 출력할 수 있다.

 

 

16.5 심사문제 : 실수를 정수로 변환하기

 

문제 : 표준 입력으로 실수가 하나가 입력됩니다. 입력된 실수에서 소수점을 버리고 정수 부분만 출력되게 만드세요.

정답 :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    float num1;

    scanf("%f", &num1);

    int num2 = num1;

    printf("%d", num2);

    return 0;
}

실수를 정수로 만들려면 자료형 축소를 이용하면 된다.

 

 

17.8 심사문제 : 청소년 콘텐츠 관람 제한하기

 

문제 : 표준 입력으로 나이(만 나이)가 입력됩니다. 여기서 콘텐츠를 보여주기 전에 나이에 따라 제한 문구를 출력하고자 합니다. 만 18세 미만이면 "청소년 관람 불가"를 출력하는 프로그램을 만드세요.

정답 :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void){

    int age;

    scanf("%d",&age);

    if (age < 18) {
        printf("청소년 관람 불가");
    }

    return 0;
}

 

 

18.9 심사문제 : else 사용하기

 

문제 : 표준 입력으로 문자가 입력됩니다. 입력된 문자가 a이면 "a입니다."를 출력하고, a가 아니면 "a가 아닙니다."를 출력하는 프로그램을 만드세요(scanf 함수 호출 전에 문자열을 출력하면 안 됩니다).

정답 : 

#include <stdio.h>

int main(void){
    
    char ch;
    
    scanf("%c",&ch);
    
    if (ch=='a')
        printf("a입니다.");
    
    else
        printf("a가 아닙니다.");
        
    return 0;
}

 

 

18.10 심사문제 : 합격여부 판단하기

 

문제 : 표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 여기서 네 과목의 평균 점수가 85점 이상일 때 합격이라고 정했습니다. 평균 점수에 따라 "합격", "불합격"을 출력하는 프로그램을 만드세요(scanf 함수 호출 전에 문자열을 출력하면 안 됩니다). 단, 점수는 0점부터 100점까지만 입력받을 수 있으며 범위를 벗어났다면 "잘못된 점수"를 출력하고 합격, 불합격 여부는 출력하지 않아야 합니다.

 

정답 :

#include <stdio.h>

int main(void){
    
    int a,b,c,d;
    int average;
    
    scanf("%d %d %d %d",&a,&b,&c,&d);
    
    if ((a>=0 && a<=100)&&(b>=0 && b<=100)&&(c>=0 && c<=100)&&(d>=0 && d<=100)){
        
        average = (a+b+c+d)/4;
        
        if (average>=85)
            printf("합격");
        else
            printf("불합격");
    }
    
    else
        printf("잘못된 점수");
        
    return 0;
}

먼저 입력받은 점수가 0점 이상이거나 100점 이하인지 검사해야 한다. 점수가 범위 안에 있으면 if 부분에서 합격 불합격 여부를 판단하고, 점수가 범위를 벗어나면 else 부분에서 printf "잘못된 점수"를 출력한다.

 

 

19.5 심사문제 : 교통카드 시스템 만들기

 

문제 : 표준 입력으로 나이(만 나이)가 입력됩니다. 교통카드 시스템에서 시내버스 요금은 다음과 같으며 각 나이에 맞게 요금을 차감한 뒤 잔액이 출력되게 만드세요(if, else if 사용). 현재 교통카드에는 10,000원이 들어있습니다.

정답 :

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

int main()
{
    int balance = 10000;    // 교통카드 잔액
    int age;

    scanf("%d", &age);

    if (age >= 19)
        balance -= 1200;

    else if (age >= 13)
        balance -= 720;

    else if (age >= 7)
        balance -= 450;

    printf("%d\n", balance);

    return 0;
}

 

 

20.8 심사문제 : 비교 연산자

 

문제 : 표준 입력으로 문자가 입력됩니다. 다음 조건대로 입력된 문자를 검사하여 결과를 출력하는 프로그램을 만드세요.

정답 :

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

int main(void) {

    char input;

    scanf("%c",&input);

    if (input != 'k')
        printf("참\n");
    else
        printf("거짓\n");

    if (input > 'h')
        printf("참\n");
    else
        printf("거짓\n");

    if (input <= 'o')
        printf("참\n");
    else
        printf("거짓\n");

    return 0;

}

* 개행 문자 까먹지 않고 쓰기

 

 

20.9 심사문제 : 삼항 연산자 사용하기

 

문제 : 표준 입력으로 정수가 입력됩니다. 입력된 정수가 7과 다르면 1을 출력하고 같으면 2를 출력하는 프로그램을 만드세요.

정답 :

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
    int num1;

    scanf("%d", &num1);

    printf("%d\n", num1!=7 ? 1 : 2);
 
    return 0;
}

 

 

21.9 심사문제 : 논리 연산자 사용하기

 

문제 : 표준 입력으로 두 정수가 입력됩니다. 다음 조건대로 입력된 두 정수를 검사하여 결과를 출력하는 프로그램을 만드세요.

정답 :

#include <stdio.h>

int main(void){
    
    int num1,num2;
    
    scanf("%d %d",&num1,&num2);
    
    if (num1&&num2)
        printf("참\n");
    else
        printf("거짓\n");
        
    if (num1||num2)
        printf("참\n");
    else
        printf("거짓\n");
        
    if (!num1)
        printf("참\n");
    else
        printf("거짓\n");
        
    return 0;
}

 

 

22.8 심사문제 : 불 자료형 사용하기

 

문제 : 다음 소스 코드를 완성하여 "참" "거짓"이 출력되게 만드세요.

정답 :

#include <stdio.h>
#include <stdbool.h>

int main()
{

    bool b1 = false;
    bool b2 = true;

    if (b1 != true)
        printf("참\n");
    else
        printf("거짓\n");

    printf("%s\n", b2 == false ? "참" : "거짓");

    return 0;
}
복사했습니다!