실습시험에서는 총 3문제가 나왔다.
문제를 설명하기 보다는 순서대로 정리해보자.
문제1)
원의 반지름 r 을 입력 받아서 면적(Area)과 둘레(Circumference)를 계산하여 출력하는 프로그램을 다음의 실행 예와 같이 작성하세요. 단 모든 데이터는 float형 데이터를 사용하며 파이(PI) 값으로 3.14를 사용합니다.
⚫ 원의 면적 = PI x r x r
⚫ 원의 둘레 = 2 x PI x r
실행 예:
Enter_the_radius:_2.2[ENTER]
Area:_15.20[NEWLINE]
Circumference:_13.82[NEWLINE]
풀이과정
1) float형으로 r을 정의하고 입력받는다.
2) 면적과 둘레를 정의하고, 공식을 이용해서 나타낸다.
3) 실행예와 같이 출력한다.
아주 간단한 문제이다.
답안)
#include <stdio.h>
int main(){
float r;
printf("Enter the radius: ");
scanf("%f", &r);
float area, cir;
area = 3.14 * r * r;
cir = 2 * 3.14 * r;
printf("Area: %.2f\n", area);
printf("Circumference: %.2f\n", cir);
}
--> 아니면 3.14가 겹치니까, 처음에 ' #define PI 3.14' 라고 선언하고 들어가도 된다.
문제2)
임의의 개수의 양의 정수를 0을 입력할 때까지 입력 받은 후 짝수(Even)인 정수의 개수와 홀수(Odd)인 정수의 개수를 출력하는 프로그램을 다음의 실행 예와 같이 작성하세요. 단 마지막에 입력하는 0은 짝수의 개수에 포함하지 않습니다.
실행 예:
9[ENTER]
6[ENTER]
5[ENTER]
8[ENTER]
3[ENTER]
4[ENTER]
2[ENTER]
0[ENTER]
Even_numbers:_4[NEWLINE]
Odd_numbers:_3[NEWLINE]
풀이과정
1) 임의의 양의 정수를 반복해서 입력받고, 입력된 값이 '0' 이면 반복을 종료한다.
2) do while 문을 이용해서, 짝수와 홀수를 판별한다.
3) 짝수인 경우 짝수 카운터를 증가시키고, 홀수인 경우 홀수 카운터를 증가시킨다.
4) 반복이 종료되면 짝수와 홀수의 개수를 출력한다.
답안)
#include <stdio.h>
int main(void)
{
int num, odd=0, even=-1;
do {
scanf("%d", &num );
if ( num % 2 == 0 )
even++;
else
odd++;
} while ( num != 0 );
printf("Even numbers: %d\n", even);
printf("Odd numbers: %d\n", odd);
return 0;
}
문제3)
0보다 큰 정수를 입력 받아 ‘#’ 문자로 삼각형 모양을 실행 예와 같이 출력하는 프로그램을 작성하세요. 삼각형은 정수만큼의 줄(row)로 출력되어야 하며 짝수일 경우 각 줄의 첫번째 칸은 ‘#’로 시작해야하고 홀수일 경우 좌우가 대칭으로 출력되어야 합니다. * 실행예에서 공백은 밑줄 _로 표기되었음을 유의
실행 예1:
Enter_an_integer:_0[ENTER]
Wrong_input[NEWLINE]
실행 예2:
Enter_an_integer:_4[ENTER]
#[NEWLINE]
##[NEWLINE]
###[NEWLINE]
####[NEWLINE]
실행 예3:
Enter_an_integer:_5[ENTER]
_ _ _ _ # [NEWLINE]
_ _ _ # # # [NEWLINE]
_ _ # # # # # [NEWLINE]
_ # # # # # # # [NEWLINE]
# # # # # # # # # [NEWLINE]
풀이과정
1) 입력값이 0이하 인경우 "Wrong input"을 출력하고 프로그램을 종료한다.
2) n이 짝수인 경우, 각 줄에 1개 부터 n개 까지의 #을 출력한다.
3) n이 홀수인 경우, 중앙에 정렬된 형태로 출력한다. 이를 위해 각 줄에 대해 좌우에 적절한 공백을 추가한 후에 '#' 을 출력한다.
답안)
#include <stdio.h>
int main() {
int n;
printf("Enter an integer: ");
scanf("%d", &n);
if (n <= 0) {
printf("Wrong input\n");
}
if (n % 2 == 0) { // 짝수일 경우
for (int i = 1; i <= n; i++) {
for (int j = 0; j < i; j++) {
printf("#");
}
printf("\n");
}
} else { // 홀수일 경우
for (int i = 1; i <= n; i++) { // 공백 출력
for (int j = 0; j < n - i; j++) {
printf(" ");
} // '#' 출력
for (int k = 0; k < 2 * i - 1; k++) {
printf("#");
}
printf("\n");
}
}
return 0;
}
'대학교_1학년 > C프로그래밍 및 실습' 카테고리의 다른 글
C프로그래밍 및 실습 - 중간고사 리뷰1 (3) | 2024.11.09 |
---|---|
C프로그래밍 및 실습 - 배열/문자열 (0) | 2024.11.08 |
C프로그래밍 및 실습 - 제어문 (1) | 2024.10.29 |
C프로그래밍 및 실습(1) (1) | 2024.10.29 |