c/자습
반복문(쉽게 풀어쓴 C언어 EXPRESS)
지트리아
2022. 12. 30. 00:22
용어정리
본문정리
반복의 개념
구성은 초기식, 조건식, 증감식으로 되어 있다.
while 문
반복 루프에서 보초값 사용하기
센티널 값이란 데이터의 끝을 알리는데 사용되는 데이터 값이다.
do - while 문
for 문
break와 continue
본문제
Q1.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int a;
printf("카운터의 초기값을 입력하시오: ");
scanf("%d", &a);
while (a) {
printf("%d ", a);
a--;
}
printf("\a");
return 0;
}
Q2.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int a = 0, sum = 0;
for (a = 1; a < 100; a++) {
if (a % 3 == 0) {
sum += a;
}
}
printf("1부터 100사이의 모든 3의 배수의 합은 %d입니다.", sum);
return 0;
}
Q3.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int a;
printf("정수를 입력하시오: ");
scanf("%d", &a);
printf("약수: ");
for (int i = 1; i <= 60; i++) {
if (a % i == 0) {
printf("%d ", i);
}
}
return 0;
}
Q4.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
for (int i = 7; i > 0; i--) {
for (int j = 0; j <= 7; j++) {
if (i <= j) {
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
Q5.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int k;
printf("정수를 입력하시오: ");
scanf("%d", &k);
for (int i = 1; i <= k; i++) {
for (int j = 1; j <= i; j++) {
if (j <= i) {
printf("%d ", j);
}
}
printf("\n");
}
return 0;
}
Q6.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int a, b;
char op;
printf("*********************\n");
printf("A ---- Add\n");
printf("S ---- Subtract\n");
printf("M ---- Multiply\n");
printf("D ---- Divide\n");
printf("Q ---- Quit\n");
printf("*********************\n");
do {
printf("연산을 선택하시오: ");
scanf(" %c", &op);
if ( !(op == 'A' || op == 'S' || op == 'M' || op == 'D' || op == 'Q')) {
printf("잘못된 연산자입니다.\n");
}
else {
break;
}
} while (1);
printf("두수를 공백으로 분리하여 입력하시오: ");
scanf("%d%d", &a, &b);
switch (op) {
case 'A':
printf("%d", a + b);
break;
case 'S':
printf("%d", a - b);
break;
case 'M':
printf("%d", a * b);
break;
case 'D':
printf("%d", a / b);
break;
}
return 0;
}
Q7.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int num;
for (int i = 2; i < 100; i++) {
num = 0;
for (int j = 2; j < i; j++) {
if (i == 2 && j == 2) {
printf("2 ");
break;
}
if (i % j == 0) {
num = 1;
break;
}
}
if (!num) {
printf("%d ", i);
}
}
return 0;
}
Q8.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int a = 0;
while (1) {
printf("막대의 높이(종료: -1): ");
scanf("%d", &a);
if (a == -1) {
break;
}
for (int i = 0; i < a; i++) {
printf("*");
}
printf("\n");
}
return 0;
}
Q9.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int k = 0, sum = 0;
scanf("%d", &k);
for (int i = 0; i <= k; i++) {
sum += i;
if (sum > 10000) {
sum -= i;
break;
}
}
printf("1부터 %d까지의 합이 %d입니다.", k, sum);
return 0;
}
Q10.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
float a, sum = 1;
int b;
printf("실수의 값을 입력하시오: ");
scanf("%f", &a);
printf("거듭제곱횟수를 입력하시오: ");
scanf("%d", &b);
for (int i = 0; i < b; i++) {
sum *= a;
}
printf("결과값은 %f", sum);
return 0;
}
Q11.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int n = 0, sum = 0;
printf("n의 값을 입력하시오: ");
scanf("%d", &n);
for (int i = 0; i <= n; i++) {
sum = sum + i * i;
}
printf("계산값은 %d입니다.", sum);
return 0;
}
Q12.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int n = 0, a = 0, b = 0, sum = 0;
printf("몇번째 항까지 구할까요? ");
scanf("%d", &n);
for (int i = 0; i <= n; i++) {
if (i == 0) {
a = 0;
b = 0;
sum += 0;
}
else if (i == 1) {
a = 0;
b = 1;
sum = a + b;
}
else if (i == 2) {
a = 1;
b = 1;
sum = 1;
}
else {
a = b;
b = sum;
sum = a + b;
}
printf("%d, ", sum);
}
return 0;
}
Q13.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int n = 0, r = 0, sum = 1;
printf("n의 값: ");
scanf("%d", &n);
printf("r의 값: ");
scanf("%d", &r);
if (r < 1) {
printf("잘못된 r의 값");
}
else {
for (int i = 0; i < r; i++) {
sum *= n;
n--;
}
}
printf("순열의 값은 %d입니다.", sum);
return 0;
}
Q14.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
long long k, dk, count = 10;
int n, div = 10;
printf("정수를 입력하시오: ");
scanf("%lld", &k);
dk = k;
do {
n = dk % div;
dk = dk / div;
printf("%d", n);
count *= 10;
} while (k > count);
n = dk % div;
printf("%d", n);
return 0;
}