
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;
}
'Programming Languages > C' 카테고리의 다른 글
[P4C] C언어 코딩 도장 : UNIT 20 ~ UNIT 22 (0) | 2021.02.19 |
---|---|
[P4C] C언어 코딩 도장 : UNIT 17 ~ UNIT 19 (0) | 2021.02.18 |
[P4C] C언어 코딩 도장 : UNIT 12 ~ UNIT 16 (0) | 2021.02.17 |
[P4C] C언어 코딩 도장 : UNIT 9 ~ UNIT 11 (0) | 2021.02.17 |
[P4C] C언어 코딩 도장 : UNIT 5 ~ UNIT 8 (0) | 2021.02.15 |