『 1~100을 이용한 알고리즘의 이해 2: C언어편 』
저자: 김득수
사용 프로그램: Visual Studio 2019
※ 본 게시글에 작성된 문제는 책 본문과 일치하지 않는 부분이 존재하며, 풀이 또한 정확하지 않습니다.
8-1.
배열에 7개의 데이터 (6, 5, 3, 7, 1, 4, 2)가 있는 경우 4이상의 숫자는 몇 개인가의 순서도를 완성하시오.
문제풀이
#include <stdio.h>
#define MAX 7
void main() {
int i = 0, cnt = 0;
int a[MAX] = { 6,5,3,7,2,4,3 };
for (i = 0; i < MAX; i++) {
if (a[i] >= 4) {
cnt++;
}
printf("%d \t", a[i]);
}
printf("\n");
printf("4 이상의 숫자 : %d 개", cnt);
}
실행결과
6 5 3 7 2 4 3
8-2.
배열에 8개의 데이터(6, 5, 3, 7, 1, 4, 2, 8)가 있는 경우 최솟값과 최댓값을 구하기 위한 순서도를 완성 하시오.
문제풀이
#include <stdio.h>
void main() {
int a[9] = { 6,5,3,7,1, 2,4,3,8 };
int max = 0, min = 9;
for (int i = 0; i < 9; i++) {
if (a[i] > max) {
max = a[i];
}
if (a[i] < min) {
min = a[i];
}
}
printf("최댓값 : %d \n", max);
printf("최솟값 : %d", min);
}
실행결과
최댓값 : 8
최솟값 : 1
8-4.
배열에 6개의 데이터 (6, 5, 3, 1, 4, 2)가 있는 경우 석차를 R배열에 입력하기 위한 순서도를 완성하시오.
문제풀이
#include <stdio.h>
void main() {
int a[6] = { 6,5,3,1,4,2 };
int r[6] = { 0,0,0,0,0,0 };
int i, j;
for (i = 0; i < 6; i++) {
for (j = 0; j < 6; j++) {
if (a[i] <= a[j])
r[i] = r[i] + 1;
}
printf("a[%d] = %d \t%d등 \n", i, a[i], r[i]);
}
}
실행결과
a[0] = 6 1등
a[1] = 5 2등
a[2] = 3 4등
a[3] = 1 6등
a[4] = 4 3등
a[5] = 2 5등
8-4. 다음과 같은 데이터가 있는 경우 6번째 까지 항의 합을 구하는 순서도를 완성하시오.
1, 3, 5, 7, 9, 11, 13, ……
문제풀이
#include <stdio.h>
void main() {
int a1 = 1;
int d = 2, s = 0;
int ai;
ai = a1, s = ai;
for (int i = 2; i <= 6; i++) {
ai = ai + 2;
s = s + ai;
}
printf("6번째 항까지의 합 : %d", s);
}
실행결과
6번째 항까지의 합 : 36
8-5. 다음과 같은 데이터가 있는 경우 4번째 까지 항의 합을 구하는 순서도를 완성하시오.
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, ……
문제풀이
#include <stdio.h>
void main() {
int a1 = 1;
int r = 2, s = 0;
int ai = a1, s= ai; // ※ 윗줄에서 이미 선언한 후이므로 int를 붙이면 X
printf("1번째 항 = %d \n", ai);
for (int i = 2; i <= 4; i++) {
ai = ai * 2;
s = s + ai;
printf("%d째 항 = %d \n", i, ai);
}
printf("4번째 항까지의 합: %d", s);
}
오답풀이
#include <stdio.h>
void main() {
int a1 = 1;
int r = 2;
int s = 0;
int ai = a1;
s = ai;
printf("1번째 항 = %d \n", ai);
for (int i = 2; i <= 4; i++) {
ai = ai * 2;
s = s + ai;
printf("%d째 항 = %d \n", i, ai);
}
printf("4번째 항까지의 합: %d", s);
}
실행결과
1번째 항 = 1
2째 항 = 2
3째 항 = 4
4째 항 = 8
4번째 항까지의 합: 15
'Tycoon > 알고리즘의 이해(2): C언어편 (完)' 카테고리의 다른 글
[알고리즘의 이해(2): C언어편] 연습문제 10장 (0) | 2025.01.03 |
---|---|
[알고리즘의 이해(2): C언어편] 연습문제 9장 (0) | 2025.01.03 |
[알고리즘의 이해(2): C언어편] 연습문제 7장 (0) | 2025.01.02 |
[알고리즘의 이해(2): C언어편] 연습문제 6장 (0) | 2025.01.02 |
[알고리즘의 이해(2): C언어편] 연습문제 5장 (0) | 2025.01.02 |