7장 Exercise & Programming
7장 Exercise
1. a. 값이 0이 아니면 참으로 간주한다
c. 거짓이여도 1번은 수행한다
d. 비어있어도 된다
2. 1, 3, 4번
3. 출력되지 않는다
4. a. 0 3 6 9(세로 출력)
b. 0 3 6 9(세로 출력)
c. 0 2 4 6 8(세로 출력)
d. 10 9 8 7 6 5 4 3 2 1 0(세로출력)
e. *********
f. hellohellohellohellohello
5.
a
int main() {
int i = 10;
while (i >= 0) {
printf("%d\n", i);
i--;
}
}
b
int main() {
int i;
for (i = 10; i >= 0; i -= 3) {
printf("%d\n", i);
}
}
6. a. 11
b. 10
7.
a. I값이 변함 없으므로 무한루프
int main() {
int i = 0;
while (i < 10) {
printf("i의 값\n", i);
i++;
}
}
b. while 줄 맨 끝 ; 제거
int main() {
int i = 0;
while (i++ < 10) {
printf("i의 값\n", i);
}
}
c. --를 ++로 변경
int main() {
int i;
for (i = 0; i < 10; i++)
printf("i = %d\n", i);
}
d. x!=1.0은 무한루프 발생, x<1.0으로 수정해야한다
int main() {
float x;
for (x = 0.1; x < 1.0; x += 0.1)
printf("%f\n", x);
}
e. i가 초기화되지 않았다
int main() {
int i;
for (i = 0; i < 10; i++)
printf("i=%d\n", i);
}
8.
int main() {
int i;
for (i = 0; i < 5; i++){
printf("%d\n", i);
}
}
9.
a
int i;
int sum = 0;
for (i = 1; i <= 30; i++)
sum += i * i + 1;
b.
int i, j;
int sum = 0;
for (i = 10; i <= 30; i++)
for (j = 0; j <= 5; j++)
sum += i * j;
7장 Programming
1.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(){
int c, i;
printf("카운터의 초기값을 입력하시오: ");
scanf("%d", &c);
for (i = c; i >= 1; i--) {
printf("%d ", i);
}
printf("\n\a");
return 0;
}
2.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int x, sum;
sum = 0;
for (x = 1; x <= 100; x++) {
if (x % 3 == 0)
sum += x;
}
printf("1부터 100 사이의 모든 3의 배수의 합은 %d입니다", sum);
return 0;
}
3.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int num;
int sum = 0, c = 0;
while (1) {
printf("숫자를 입력하시오: ");
scanf("%d", &num);
if (num < 0) continue;
sum += num;
c++;
if (c >= 3)
break;
}
printf("\n합계는 %d입니다. \n", sum);
return 0;
}
4.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a, b;
printf("정수를 입력하시오: ");
scanf("%d", &a);
printf("약수: ");
for (b = 1; b <= a; b++) {
if (a % b == 0) {
printf("%d ", b);
}
}
return 0;
}
5.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(){
int n, i;
double r, result;
printf("실수의 값을 입력하시오: ");
scanf("%lf", &r);
printf("거듭제곱횟수를 입력하시오: ");
scanf("%d", &n);
result = 1.0;
for (i = 0; i < n; i++)
result *= r;
printf("결과값은 %f\n", result);
return 0;
}
6.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int n, i, result;
result = 0;
printf("n의 값을 입력하시오: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
result += i * i;
}
printf("계산값은 %d입니다", result);
return 0;
}
7.
#include <stdio.h>
int main(){
int y, x;
for (y = 0; y < 7; y++) {
for (x = 0; x < (6 - y); x++)
printf(" ");
for (x = 6 - y; x < 7; x++)
printf("*");
printf("\n");
}
return 0;
}
8.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a, i, j;
printf("정수를 입력하시오: ");
scanf("%d", &a);
for (i = 1; i <= a; i++) {
for (j = 1; j <= i; j++) {
printf("%d ", j);
}
printf("\n");
}
return 0;
}
9.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int n1, n2, min_m;
printf("정수 2개를 입력하시오: ");
scanf("%d %d", &n1, &n2);
min_m = n1 > n2 ? n1 : n2;
while (1) {
if (min_m % n1 == 0 && min_m % n2 == 0)
break;
min_m++;
}
printf("\n최소 공배수는 %d입니다. \n", min_m);
return 0;
}
10.
#include <stdio.h>
int main() {
int i, j, prime;
printf(" ");
i = 2;
check_prime:
prime = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
prime = 0;
break;
}
}
if (prime == 1) {
printf("%d ", i);
}
i++;
if (i <= 100) {
goto check_prime;
}
return 0;
}
11.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int f, p_m;
printf("현재 연료량: ");
scanf("%d", &f);
while (1) {
printf("연료 충전은 +, 소모는 -로 입력해 주세요.: ");
scanf("%d", &p_m);
printf("\n");
f += p_m;
printf("현재 연료량: %d\n", f);
if (f <= 10.0)
printf("(경고) 연료가 20리터 미만입니다.\n");
}
return 0;
}
12.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int height, i, j;
while (1) {
printf("막대의 높이(종료: -1): ");
scanf("%d", &height);
if (height < 0) {
break;
}
printf("");
for (i = 0; i < height; i++) {
printf("*");
}
printf("\n");
}
return 0;
}
13.
#include <stdio.h>
int main() {
int i, sum;
i = 0;
sum = 0;
while (1) {
i++;
sum += i;
if (sum >= 10000)
break;
}
printf("1부터 %d까지의 합이 %d입니다.\n", (i - 1), sum - i);
return 0;
}
14.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a = 0;
int b = 1;
int c, n, i;
printf("몇번째 항까지 출력할까요? ");
scanf("%d", &n);
printf("%d, %d, ", a, b);
for (i = 1; i < n; i++) {
c = a + b;
a = b;
b = c;
printf("%d, ", c);
}
printf("\n");
return 0;
}
15.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int i, n, p, r;
printf("n의 값: ");
scanf("%d", &n);
printf("r의 값: ");
scanf("%d", &p);
r = 1;
for (i = n; i >= (n - p + 1); i--)
r = r * i;
printf("순열의 값은 %d입니다.\n", r);
return 0;
}
16.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int n, digit;
int rev = 0;
printf("정수를 입력하시오: ");
scanf("%d", &n);
do {
digit = n % 10;
rev = rev * 10 + digit;
n /= 10;
} while (n != 0);
printf("%d", rev);
return 0;
}
17.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char cal;
int x, y;
while (1) {
printf("*****************\n");
printf("A---- Add \n");
printf("S---- Subtract \n");
printf("M---- Multiply \n");
printf("D---- Divide \n");
printf("Q---- Quit \n");
printf("*****************\n");
printf("연산을 선택하시오:");
scanf(" %c", &cal);
if (cal == 'Q')
break;
printf("두수를 공백으로 분리하여 입력하시오: ");
scanf("%d %d", &x, &y);
if (cal == 'A')
printf("%d \n", x + y);
else if (cal == 'S')
printf("%d \n", x - y);
else if (cal == 'M')
printf("%d \n", x * y);
else if (cal == 'D')
printf("%d \n", x / y);
else
printf("지원되지 않는 연산자입니다. \n");
}
return 0;
}
18.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int n, i;
double sum = 0;
printf("항의 개수: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
sum += 1.0 / i;
}
printf("수열의 합=%f\n", sum);
return 0;
}
19.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
srand(time(NULL));
int niter, in_dots = 0;
double x, y, z, pi;
printf("반복 횟수: ");
scanf("%d", &niter);
in_dots = 0;
for (int i = 0; i < niter; i++) {
x = (double)rand() / RAND_MAX;
y = (double)rand() / RAND_MAX;
z = x * x + y * y;
if (z <= 1) in_dots++;
}
pi = (double)in_dots / niter * 4;
printf("파이 = %lf\n", pi);
return(0);
}
20.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int sticks = 12;
int user, computer;
while (sticks > 0) {
printf("현재 스틱의 개수: %d\n", sticks);
printf("몇 개의 스틱을 가져가시겠습니까?: ");
scanf("%d", &user);
while (user < 1 || user > 3 || user > sticks) {
printf("\n잘못된 입력입니다. 1~3개의 스틱 중에서 남아있는 수만큼 선택하세요.\n");
printf("\n몇 개의 스틱을 가져가시겠습니까?: \n");
scanf("%d", &user);
}
sticks -= user;
if (sticks <= 0)
break;
computer = 4 - user;
printf("컴퓨터는 %d개의 스틱을 가져갔습니다.\n", computer);
sticks -= computer;
}
printf("게임 종료!\n");
return 0;
}
21.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int g, max, min;
int a;
srand(time(NULL));
max = 100;
min = 1;
printf("컴퓨터가 당신이 생각하는 숫자를 알아맞히는 게임입니다.\n");
printf("하나의 숫자를 생각하세요. \n컴퓨터가 제시한 숫자보다 정답이 높으면 1, 낮으면 - 1라고 하세요.\n");
printf("컴퓨터가 숫자를 맞추면 0라고 하세요.\n\n");
do {
g = (max + min) / 2;
printf("숫자가 %d인가요? ", g);
scanf("%d", &a);
if (a == -1) {
max = g - 1;
}
else if (a == 1) {
min = g + 1;
}
} while (a != 0);
return 0;
}
8장 Exercise & Programming은 아래 클릭하시면 됩니다.
[C언어] 쉽게 풀어쓴 C언어 Express 8장 Exercise & Programming
[C언어] 쉽게 풀어쓴 C언어 Express 8장 Exercise & Programming
8장 Exercise & Programming 8장 Exercise 1. 1번 2. 3번: y = sin(x) + sqrt(x * x * -2 * a) + ldexp(1.0 * 10; 3. 1번, 4번 4. 1번 5. a. 1.72(double) b. 1(double) c. 2(double) 6. a. 0-9 b. 2-6 7. a. y = log10(x) + exp(x) b. y = sin(x) + sqrt(x * x * -2 *
gomszone.tistory.com
'프로그래밍 > C언어' 카테고리의 다른 글
[쉽게 풀어쓴 C언어 Express 개정4판] 9장 Exercise & Programming (4) | 2024.02.12 |
---|---|
[쉽게 풀어쓴 C언어 Express 개정4판] 8장 Exercise & Programming (6) | 2024.02.11 |
[쉽게 풀어쓴 C언어 Express 개정4판] 6장 Exercise & Programming (3) | 2024.02.11 |
[쉽게 풀어쓴 C언어 Express 개정4판] 5장 Exercise & Programming (8) | 2024.02.10 |
[쉽게 풀어쓴 C언어 Express 개정4판] 4장 Exercise & Programming (4) | 2024.02.10 |
댓글