728x90
728x170
c언어 연습 (문제풀이 중심의) 6장 해설 및 답지, 문제풀이
6-1. 주어진 코드를 while문 do while문을 사용해서 나타내도록 수정
//while문 사용
#include <stdio.h>
int main(void) {
int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 10);
return 0;
}
//do while문 사용
#include <stdio.h>
int main(void) {
int i = 0;
while (i < 10) {
printf("%d\n", i);
i++;
}
return 0;
}
6-2. 주어진 코드를 break문을 사용하지 않도록 수정
#include <stdio.h>
int main(void) {
int count = 0;
char ch = 'a';
while ((ch = getchar()) && (ch != 'Q')) {
count++;
putchar(ch);
}
return 0;
}
6-3. 주어진 코드를 continue문을 사용하지 않도록 수정
#include <stdio.h>
int main(void) {
int i = -10;
int n = 20;
int total = 0;
while (i < n) {
++i;
if (i != 0) {
total += i;
printf("%d %d\n", i, total);
}
}
return 0;
}
6-4
6-5. 1에서 100까지 합 구하기(for문 사용)
#include <stdio.h>
int main(void) {
int total = 0;
for (int i = 0; i <= 100; i++) {
total += i;
}
printf("합: %d", total);
return 0;
}
6-6. 1부터 10까지의 합 구하기(for문 사용)
#include <stdio.h>
int main(void) {
int total = 0;
for (int i = 0; i <= 10; i++) {
total += i;
printf("%2d %2d\n", i, total);
}
return 0;
}
6-7. 1 부터 100까지의 홀수의 합 구하기 (while문 사용)
#include <stdio.h>
int main(void) {
int total = 0;
int i = 0;
while (1) {
i++;
if (i > 100)
break;
if (i % 2 == 0)
continue;
total += i;
}
printf("홀수의 합: %d", total);
return 0;
}
6-8. 0에서 360도까지 10도 간격으로 라디안 출력
#include <stdio.h>
#define PI 3.14159
int main(void) {
int degree;
double radian;
printf(" 도 라디안\n");
printf("--------------\n");
for (int degree = 0; degree <= 360; degree += 10) {
radian = ((double)degree / 180) * PI;
printf("%3d %.3f\n", degree, radian);
}
return 0;
}
6-9. 1부터 100 사이의 자연수 n을 입력받아서 1부터 n까지의 합 구하기 (do while문 사용)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int total = 0;
int i = 0;
int n; //입력받은 값
printf("10 이상의 자연수를 입력하세요: ");
scanf("%d", &n);
if ((n > 100) || (n < 0)) {
printf("잘못된 값 입력");
return 0;
}
if ((n >= 1) && (n <= 10))
return 0;
do {
i++;
total += i;
} while (i < n);
printf("%d까지의 합: %d", n, total);
return 0;
}
6-10. 50에서 100까지의 홀수의 개수와 홀수의 합 구하기 (do while문 사용)
#include <stdio.h>
int main(void) {
int i = 50;
int count = 0; //개수
int total = 0; //합
do {
if (i % 2 == 1) {
total += i;
count++;
}
i++;
} while (i <= 100);
printf("홀수의 개수: %d\n", count);
printf("홀수의 합: %d", total);
return 0;
}
6-11. 2에서 10 사이의 임의의 정수(n)과, 배수의 합(sum)을 입력받아서 1에서 100 사이의 n의 배수의 합이 sum보다 작을 때의 배수와 합 구하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int n;
int sum;
int n1 = 0;
int sum1 = 0;
printf("정수 입력: ");
scanf(" %d", &n);
printf("배수의 합: ");
scanf(" %d", &sum);
while (sum1 + n1 < sum) {
n1 += n;
sum1 += n1;
}
printf("배수: %d, 합: %d", n1, sum1);
return 0;
}
6-12. 1에서 10사이의 양의 정수(n)를 입력받아서 n! 구하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int n;
int result = 1;
printf("구하고자 하는 factorial 값: ");
scanf(" %d", &n);
if ((n < 1) || (n > 10)) {
printf("잘못된 값 입력");
return 0;
}
printf("%d! = ", n);
for (int i = n; i > 1; i--) {
printf("%d * ", i);
result *= i;
}
printf("1 = %d", result);
return 0;
}
6-13. 임의의 문자를 입력받아서 입력한 문자를 반복 출력. Q가 입력되면 프로그램 종료.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
char ch;
while (1) {
printf("한 문자 입력: ");
scanf(" %c", &ch);
if (ch == 'Q')
return 0;
printf("입력한 문자: %c\n", ch);
}
return 0;
}
6-14. 0이 입력될 때까지 입력한 정수들의 합과 평균 구하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int count = 0;
int total = 0;
int num;
int avg;
while (1) {
printf("숫자 입력: ");
scanf(" %d", &num);
if (num == 0)
break;
total += num;
count++;
}
avg = total / count;
printf("합: %d, 평균: %d", total, avg);
return 0;
}
6-15. 개행 문자('\n') 입력 전까지 입력한 문자의 개수와 공백 문자의 개수 구하기
#include <stdio.h>
int main(void) {
char ch;
int countChr = 0;
int countBlank = 0;
printf("입력문자열: ");
while (1) {
ch = getchar();
if (ch == '\n')
break;
if (ch == ' ')
countBlank++;
countChr++;
}
printf("입력받은 문자의 개수: %d\n", countChr);
printf("공백문자의 개수: %d", countBlank);
return 0;
}
6-16. 개행문자('\n') 입력 전까지 입력한 문자의 개수와 모음 문자의 개수 구하기
#include <stdio.h>
int main(void) {
char ch;
int countChr = 0;
int countBla = 0;
int countA = 0;
int countE = 0;
int countI = 0;
int countO = 0;
int countU = 0;
printf("입력문자열: ");
while (1) {
ch = getchar();
if (ch == '\n')
break;
countChr++;
switch (ch) {
case 'a':
case 'A':
countA++;
break;
case 'e':
case 'E':
countE++;
break;
case 'i':
case 'I':
countI++;
break;
case 'o':
case 'O':
countO++;
break;
case 'u':
case 'U':
countE++;
break;
}
}
printf("입력받은 문자의 개수: %d\n", countChr);
printf("모음 (a): %d\n", countA);
printf("모음 (e): %d\n", countE);
printf("모음 (i): %d\n", countI);
printf("모음 (o): %d\n", countO);
printf("모음 (u): %d\n", countU);
return 0;
}
6-17. 입력받은 높이에서 떨어지는 물체의 높이를 초당 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define G 9.80665
int main(void) {
double height;
double time = 0;
printf("탑의 높이: ");
scanf(" %lf", &height);
printf("시간 높이\n");
printf("---------------\n");
do {
printf("%3.2f %4.2f\n", time, height);
time++;
height -= 0.5 * G * time * time;
} while (height >= 0);
return 0;
}
6-18. 1 - 2 + 3 - 4 + ... + 99 - 100 구하기
#include <stdio.h>
int main(void) {
int total = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0)
total -= i;
else
total += i;
}
printf("합 (1 - 2 + 3 - 4 + ... + 99 - 100) : %d", total);
return 0;
}
6-19. 1 - 2 + 3 - 4 + ... + 99 - 100의 중간 과정과 결과 출력(while문 사용)
#include <stdio.h>
int main(void) {
int total = 0;
int count = 1;
while (count <= 100) {
printf("1 ");
for (int i = 2; i <= count; i++) {
if (i % 2 == 0) {
printf("- %d ", i);
}
else {
printf("+ %d ", i);
}
}
if (count % 2 == 0)
total -= count;
else
total += count;
printf("= %d\n", total);
count++;
}
printf("합 (1 - 2 + 3 - 4 + ... + 99 - 100) : %d", total);
return 0;
}
6-20. 1 + (1 + 2) + (1 + 2 + 3) + ... + (1 + 2 + 3 + ... + 9 + 10)를 구해라
#include <stdio.h>
int main(void) {
int total = 0;
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= i; j++) {
total += j;
}
}
printf("1 + (1 + 2) + (1 + 2 + 3) + ... + (1 + 2 + 3 + ... + 9 + 10) = %d", total);
return 0;
}
728x90
그리드형
'IT > 프로그래밍' 카테고리의 다른 글
자료 구조와 알고리즘 이론 정리 (0) | 2021.05.03 |
---|---|
명품 C++ Programming 1장 실습 문제 문제풀이 해설 (0) | 2021.05.02 |
c언어 연습 (문제풀이 중심의) 5장 문제풀이 해설 (0) | 2021.05.01 |
c언어 연습 (문제풀이 중심의) 4장 문제풀이 해설 (0) | 2021.04.30 |
c언어 연습 (문제풀이 중심의) 3장 문제풀이 해설 (0) | 2021.04.29 |
댓글