[C언어] 약수 구하기
아까는 배수를 구해보았으니 이번에는 약수를 구해보자. #define _CRT_SECURE_NO_WARNINGS #include int main() { int num = 280; for (int i = 1; i
아까는 배수를 구해보았으니 이번에는 약수를 구해보자. #define _CRT_SECURE_NO_WARNINGS #include int main() { int num = 280; for (int i = 1; i
역피라미드, 피라미드, 모래시계형을 만들어볼 것이다. 역피라미드 만들기 Thinking - 공백의 패턴은 어떠한가? : 외부 for문 i가 증가하는 갯수만큼 공백 증가. - 별은 어떻게 나타낼 것인가? : 약간의 그림을 그려보고, 패턴을 찾는다. - 역 피라미드의 경우, 외부 for문 i가 0부터 시작하고, 높이가 h이라는 가정 하에 별의 갯수는 2*h-(2*i+1)이다. 이것을 가지고 코딩을 해보자. 더보기 #define _CRT_SECURE_NO_WARNINGS #include int main() { int h; scanf("%d", &h); for (int i = 0; i
for문을 중첩해서 사용하면 2차원 평면을 다룰 수 있다. for문 별찍을때 헷갈리지 않으려면 for(초기식; 조건식; 변화식) 이라는것을 꼭 상기하자. 사각형 별 출력하기 #include int main() { for (int i = 0; i < 5; i++) // 세로줄을 담당한다. { for (int j = 0; j < 5; j++) // 내용물을 담당한다. { printf("*"); } printf("\n"); } return 0; } 컴파일한 화면을 보려면 아래 더보기를 눌러주세요. 더보기 외부 for문은 세로 줄을 담당한다. 그리고 내부 for문은 내용물(가로)을 담당한다. 외부 for문이 0부터 4까지 5번을 쭉 내려가는 것으로 짜여져 있으며. 내부 for문은 j가 0부터 4까지 하나씩 차면..
break와 continue를 잘 이용하면 반복문을 제어할 수 있다. 먼저 break는 for, while, do while, switch 문법에서 제어 흐름을 벗어나기 위해 사용한다. break로 반복문 끝내기 while(do while)뿐만 아니라 for에서도 break의 동작은 같다. 무한루프가 예시이긴 하지만, 반복 횟수가 정해져 있더라도 break를 사용하면 반복문은 바로 끝난다. continue로 코드 실행 건너뛰기 이번에는 continue를 사용하여 일부 코드를 실행하지 않고 건너뛰어보자. 다음은 1부터 100까지 숫자 중 짝수만 출력한다. continue는 루프를 나오지는 않는다. 다만 해당 조건에 부합할 경우 그 조건만 건너뛰고 다시 루프문으로 들어간다. for 뿐만 아니라 while(d..
코드를 최소 한번은 실행하는 do while에 대해서 공부해보자. do while 반복문은 초기식이 반복문 바깥에 있다. 그리고 do로 시작하여 중괄호 안에 반복할 코드와 변화식이 함께 들어가며 중괄호가 끝나는 부분에 조건식을 지정해준다. do while 반복문 사용하기 do while을 사용하여 Hello world를 100번 출력해보자. do while 반복문도 반드시 {}(중괄호) 안에 변화식을 지정해야 한다. 만약 조건식만 지정하고 중괄호 안에서 변화식을 생략하면 반복이 끝나지않고 계속 실행(무한 루프)되므로 주의해야 한다. do while을 while로만 표현하면 다음과 같다. 초깃값을 1부터 시작하기 초깃값을 감소시키기 입력한 횟수대로 반복하기 반복 횟수가 정해지지 않은 경우 while 반복문..
while 반복문은 괄호 안에 조건식만 들어가고, 초기식은 반복문 바깥에 있다. 그리고 중괄호 안에 반복할 코드와 변화식이 함께 들어간다. 초기식 While (조건식) // 루프 선언문(loop statement) { 반복할 코드 변화식 } // 루프 본체(loop body) 및 변화식 먼저 초기식부터 시작하여 조건식을 판별한다. 여기서 조건식이 참이면 반복할 코드와 변화식을 함께 수행한다. 그리고 다시 조건식을 판별하여 참이면 루프로, 거짓이면 루프를 탈출하여 다음 코드로 넘어간다. while 반복문 사용하기 while 반복문으로 Hello world를 100번 출력해보자. 1. 먼저 반복문에서 사용할 변수 i를 선언한 뒤 0으로 초기화 한다. 2. while에는 조건식만 지정하면 된다. 3. 여기서 ..
프로그래밍을 할때에는 언제나 극단적인 환경을 고려해야 한다. Hello world를 100번 출력하려면 printf 함수를 100번 가져다쓰면 된다. 하지만 극단적으로 생각했을 때 Hello world를 1억번 출력해야 할 일이 생긴다면? 그때도 printf를 1억번 쓸 것인가? 그렇지 않다. 우리는 우리 시간을 아끼기 위해 최대한 극단적이되 편의지향적으로 생각해야 한다. 그런 의미를 상기하며 for문을 공부해보겠다. C언어의 for 반복문은 괄호 안에 (초기식; 조건식; 변화식)을 지정한다. 그 부분을 루프 선언문(loop statement)라고 부른다. 그리고 중괄호 안에 반복할 코드를 작성하는데 이 부분을 루프 본체(loop body)라고 부른다. 조건식 → 루프 본체 → 변화식 → 조건식 으로 순..
if 조건문은 참이거나 거짓일 때 두 가지만 처리할 수 있거나, else if를 사용하더라도 매번 조건식을 지정해주어야 했다. switch 분기문은 조건이 많아도 손쉽게 처리할 수 있다. switch (값을 판단할 변수) { case 1: printf("1 입니다.\n"); break; case 2: printf("2 입니다.\n"); break; default: printf("default\n") break; } 값을 판단할 변수가 1이라면 case 1에 따라 "1 입니다." 가 출력되고, 2라면 case 2에 따라 "2 입니다."가 출력된다. 그 무엇도 아니라면 default를 따라 "default"가 출력된다. 사용자가 입력한 값에 따라 문자열 출력하기 컴파일 후 2를 입력하고 엔터를 치면 아래와 ..
이번 단원에서는 1. 부호 있는 정수와 부호 없는 정수 두 자료형에 비트 연산을 했을 때 어떤 차이점이 있는지 알아 볼 것이다. 2. 또한 비트 연산자를 응용한 플래그 처리 방법도 알아볼 것이다. 시프트 연산과 2의 거듭제곱 알아보기 시프트 연산자는 2의 거듭제곱인 숫자를 빠르게 구할 때 유용하다. char형은 1바이트(8비트)이고 이에 따라 총 8개의 0과 1을 적을 수 있다. 2진수이기 때문에 1을 왼쪽으로 한 자리씩 시프트하면 그에 따른 제곱이 하나씩 올라가 시프트 연산자를 통해 거듭제곱인 숫자를 빠르게 구할 수 있다. 즉 비트의 이동 횟수는 지수(exponent)와 같다. 시프트 연산으로 자릿수를 넘어서는 경우 알아보기 시프트 연산자를 사용하여 비트가 첫째 자리나 마지막 자리를 넘어설 때까지 이동..