코딩/C언어

_11_교재 => 수업011_반복문 ~ 수업011_반복문03 , _11_문제 => 문제011_반복문 ~ 문제011_반복문12(1~3)

tree0505 2025. 6. 27. 11:07
반응형
    • _11_교재

  • 수업011_반복문.cpp
#include <stdio.h>

int main(void) {
	//반복문의 함정은 { } 중괄호 생략. 이게 함정 

	int i = 0;
	for (i = 0; i < 10; i++) // for문도 if문과 같이 한줄은 {} 생략이 가능하다.
		printf("%d\n", i);

	return 0;
}

  • 수업011_반복문02.cpp
#include <stdio.h>

int main(void) {
	//while은 중괄호를 생략할 수 없다. i++을 넣어야 해서. 
		//불가능 

	int i = 0;
	while (i < 10) {
		printf("%d\n", i);
		i++;
	}
	return 0;
}

  • 수업011_반복문03.cpp
#include <stdio.h>

int main(void) {
	//do while 조심해야 할것 
	//조건이 뒤에 있다. 
	
	int i = 0;
	do {
		printf("%d\n", i);
		i++;
	} while (i < 6); //여기 세미콜론이 붙는것을 조심 
		
	return 0;
}

  • _11_문제

  • 문제011_반복문.cpp
#include <stdio.h>

int main(void) {

	int j;
	int sum = 0;
	for (j = 2; j <= 70; j += 5)
		//70 - 2 / 5 (나누기가 먼저 됨. 2/5 )
		//70 / 5 => 14 
		sum = sum + 1;
	printf("%d\n", sum); // 14 

	return 0;
}

  • 문제011_반복문02.cpp
#include <stdio.h>

int main(void) {
	int i = 1;
	int c = 0;
	for (i = 1; i <= 2023; i++) {
		//2023 - 1 / 4 
		//2023 - 0 
		//2023 / 4 => 505 
		if (i % 4 == 0) c++;
	}
	printf("%d\n", c); //505 

	return 0;
}

  • 문제011_반복문03.cpp
#include <stdio.h>

int main(void) {
	int count, sum = 0;
	for (count = 1; count <= 10; count++) {
		// 1 = 10 (10바퀴) , 1 3 5 7 9 
		//25 

		if (count % 2 == 0)
			continue;
		else
			sum += count;
	}
	printf("%d\n", sum); //25 

	return 0;
}

  • 문제011_반복문04.cpp
#include <stdio.h>

int main(void) {
	
	int count = 2;
	int sum = 0;
	while (count <= 10) {
		// 2 = 10 , 짝수만 계속 더함 
		// 2 4 6 8 10 => 30 
		sum += count;
		count += 2;
	}
	printf("%d\n", sum); //30 

	return 0;
}

  • 문제011_반복문05.cpp
#include <stdio.h>

int main(void) {

	int c = 0; //0 //함정 
	int i = 0;
	while (i < 10) {
		// 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 
		i++;
		c *= i;
		//++된 다음에 곱한다. 
	}
	printf("%d\n", c); //0 

	return 0;
}

  • 문제011_반복문06.cpp
#include <stdio.h>

int main(void) {
	//뒷-- 

	int a, b;
	a = 2;
	//2중 함정 
	while (a-- > 0) { 
		// a 2 > 0 . 2가 들어가긴 한다. 하지만 a = 1이 된다. 
		// 1 > 0 , 들어가진다. 그 다음에 a = 0 
		//그 다음 못 들어간다. 
		printf("a = %d\n", a); 
		// 화면에는 a = 1 이 나옴 
		// a = 0 
		// a = 0이 됬지만. while (a-- > 0) . a--는 동작을 한다.
		// a = -1 됨  . 출력은 안됨 
	}
	// a = -1  
	for (b = 0; b < 2; b++) {
		printf("a = %d\n", a++);
		// a = -1 출력 , a = 0 이 된다. 
		// a = 0 출력 , a = -1 
	}
	return 0;
}

  • 문제011_반복문07.cpp
#include <stdio.h>

int main(void) {

	// 최대공약수 . 공식 
	int a = 120, b = 45;
	while (a != b) {
		if (a > b) a = a - b; 
		// 1. a = 75 
		//2.  a = 30 
		//4. a = 15 
		//그 다음 튕겨져 나옴 
		else b = b - a; //3. b = 15  
	}
	printf("%d\n", a); // 15 
	return 0;
}

  • 문제011_반복문08.cpp
#include <stdio.h>

int main(void) {

	// 최대공약수 
	// 함정 a++ 
	int a = 1, sum = 0;

	while (a++ <= 5) {
		//1. 1<= 5 , a = 2
		//2. 2 <= 5 , a = 3  
		//3. 3 <= 5, a = 4 
		//4. 4 <= 5, a = 5 
		//5. 5 <= 5, a = 6 
		if (a % 2 != 0)
			continue;
			//2. 튕김 
			//4. 튕김

		sum = sum + a;
		// 1 . sum = 2 
		// 2. 튕김 
		// 3. sum = 2+4  
		// 4. 튕김
		// 5 . sum = 2+4+6
 	}
	printf("%d\n", sum); //12 
	return 0;
}

  • 문제011_반복문09.cpp
#include <stdio.h>

int main(void) {

	int i, sum = 0;
	for (i = 1; i <= 10; i += 2) {
		//1 3 5 7 9 		
		if (i % 2 && i % 3) continue;
		// if (i % 2 != 0 && i % 3 != 0) continue;

		
		//정답은 2의 배수거나. 3의 배수이면 
		// 3 . 9가 들어옴 

		printf("%d\n", i); // i = 3, i = 9 
		sum += i;

	}
	printf("%d\n", sum); //12
	return 0;
}

  • 문제011_반복문10.cpp
#include <stdio.h>

int main(void) {

	int i, j, sum = 0;

	// 9 * 9 = 81
	// i = 1 2 3 5 6 7 9; //까지 돌음  
	// j =  1, 2, 4, 5, 7 8 //돌음 
	for (i = 1; i < 10; i++) {
		for (j = 1; j < 10; j++) {
			if (j % 3 == 0) continue; //i는 3까지 돌음 
			if (i % 4 == 0) break;
			printf("[%d, %d]", i , j);
			sum++; // 6 * 7 
		}
		printf("\n");
	}
	printf("%d\n", sum); // 42 
	return 0;
}

  • 문제011_반복문11.cpp
#include <stdio.h>

int main(void) {
	//함정 . a++ 
	int a = 1, sum = 0;

	while (a++ <= 5) {
		//1. 1<= 5, a = 2 
		//2. 2<=5 , a = 3 
		//3. 3<=5, a = 4
		//4. 4<=5. a = 5
		//5. 5<=5, a = 6 

		if (a % 2 != 0)
			continue;
		sum = sum + a;
		//1. 2
		//3. 2+4
		//5. 2+4+6 
	}
	printf("%d\n", sum);
	return 0;
}

  • 문제011_반복문12.cpp
#include <stdio.h>

int main(void) {

	int i = 0;
	while (1) { //1이면 무한반복이다. = true  
		if (i == 4) {
			break;
		}
		++i;
	}
	printf("i=%d\n", i); //i = 4 
	return 0;
}
반응형