03. 반복문(loop) #1

SOOBIN·2021년 2월 5일

C프로그래밍

목록 보기
4/4

1. while문



1. 합 구하기

  • 수를 입력 받아서 1부터 입력 받은 수까지의 합을 출력하세요.

👉입력예시

수를 입력 하세요 : 45

👉출력예시

합은 1035입니다

👉정답

#include<stdio.h>

int main(){
	int num = 0;
	printf("수를 입력하세요: ");
	scanf("%d", &num);
	
	int i = 1;
	int sum = 0;
	while (i <= num) {
		sum += i; 
		i++;
	} 
	printf("합은 %d입니다.\n", sum);
	
	return 0;
}

2. 팩토리얼

  • 수를 입력 받고 그 수의 팩토리얼을 출력하세요.
  • 입력 받는 수의 최대값은 10이다.

👉입력예시

수를 입력 하세요 : 8

👉출력예시

8!은 40320 입니다

👉정답

#include<stdio.h>

int main(){
	int num = 0;
	printf("수를 입력 하세요: ");
	scanf("%d", &num);
	
	int p = 1;
	int i = 1;
	while (i <= num){
		p *= i;
		i++;
	}
	printf("%d!는 %d입니다.", num, p);
	
	return 0;
}

3. 약수 구하기

  • 수를 입력 받아서 그 수의 약수를 모두 출력하세요.

👉입력예시

수를 입력 하세요 : 24

👉출력예시

1 2 3 4 6 8 12 24

👉정답

#include<stdio.h>

int main(){
	int num = 0;
	printf("수를 입력 하세요: ");
	scanf("%d", &num);
	
	int i = 1;
	while (i <= num) {
		if (num % i == 0) {
			printf("%d ", i);
		}
		i++;
	} 
	return 0;
}



2. for문


1. 개수 세기

  • 1 ~ 100 사이의 7의 배수 개수를 구하세요.

👉출력예시

7의 배수의 개수는 : 14

👉정답

  • sol1
#include<stdio.h>

int main(){
	int number = 0;
    
    for (int i = 1; i <= 100; i += 7) {
    	number++
    }
    printf("7의 배수의 개수는: %d", &number);
    
    return 0;
}
  • sol2
#include<stdio.h>

int main() {
	int number = 0;
    
    for (int i = 0; i <= 10; i++) {
    	if (i % 7 == 0) {
        	number++;
        }
    }
    printf("7의 배수의 개수는: %d", number);
    
    return 0;
}

sol1이 루프를 더 적게 돌기 때문에 더 좋은 코드이다. (복잡도가 낮다.)



2. 특정 조건 구하기

  • 1 ~ 50 사이의 3의 배수만 출력하세요.

👉출력예시

3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48

👉정답

#include<stdio.h>

int main(){
    for (int i = 1; i <= 100; i += 3) {
    	printf("%d ", i);
    }
 
    return 0;
}



3. break, continue문


break문

  • break가 써진 곳의 가까운 반복문에서 빠져나온다.

continue문

  • 아래 코드들을 수행하지 않고 조건을 보러 간다.
  • continue문에선 일단 모든 수를 출력한다고 하고 예외를 처리할 때 쓴다고 생각하면 쉽다. (개인적으로,,)



1. 무한 입력

  • 무한 루프를 통해서 반복적으로 수를 입력을 받고 0이 입력 되었을때 반복문을 빠져 나오게 하세요.
  • 입력이 끝나면 "끝"을 출력하세요

👉입력예시

수를 입력하세요 : 21
수를 입력하세요 : 24
수를 입력하세요 : 83
수를 입력하세요 : 2
수를 입력하세요 : 9
수를 입력하세요 : 0

👉출력예시

❗팁

C언어에서 0:거짓, 0이 아닌 수: 참

👉정답

#include<stdio.h>

int main(){
	int number = 0;
    
	while(1) {
    	printf("수를 입력하세요: ");
        scanf("%d", &number);
        if (number == 0) {
        	break;
        }
    }
    return 0;
}

2. 배수의 합 구하기

  • 3부터 50까지 3의 배수의 합을 출력하세요.
  • 증감 연산은 +1씩 하세요.
  • continue문을 사용하세요.

👉출력예시

408

👉정답

#include<stdio.h>

int main(){
	int sum = 0;
    
    for (int i = 3; i <= 50; i++) {
    	if (i % 3 != 0) {
        	continue;
        }
    	sum += i;
    }
    printf("%d", &sum);
    
    return 0;
}

0개의 댓글