본문 바로가기

전체 글75

[6-1] while - while문은 C언어의 반복문 중에서 가장 간단하면서, 중요한 구문임.- while문은 다음과 같은 구조를 가짐.while ( expression ) statement괄호 내의 표현식이 제어식이고, 괄호 이후 나오는 구문이 루프 본문임.while문이 실행되면, 우선 제어식이 평가됨.제어식 값이 0이 아니라면(참) ➡ 루프 본문이 실행된 다음 제어식을 평가함.이런 방식으로, 우선 제어식을 확인하고 루프 본문으로 넘어가는 방식이 제어식의 값이 0이 될 때까지 반복됨. 예제) 어떤 수 n보다 크거나 같은 수 중, 가장 작은 2의 제곱수를 찾아보자.          n의 값이 10이라고 가정할 때, while문이 실제로 어떻게 동작하는지 논리를 따라가보자.i = 1;while (i 제어식 (i 식이 거.. 2024. 9. 5.
Q&A (들여쓰기 방식, switch 문 작성 방식) 📌 제 컴파일러는 == 대신 =를 써도 경고 메세지를 출력하지 않던데, 컴파일러가 이런 점을 강제로 경고로 알려주게 만들 수 있나요?- 대부분의 컴파일러는 = 연산자를 if문에서 잘못 사용한 경우를 잡아줌.  ex) GCC 컴파일러는 -Wparentheses 기능 or -Wall(모든 경고 메시지 표시) 기능으로 위 경우를 잡아줌.- GCC를 사용할 때, 의도적으로 = 연산자를 써준 경우 괄호를 두 번 해주면 경고 메시지가 뜨지 않게 해줄 수 있음.if ((i = j)) …  📌 C언어 책들마다 복합문에서 들여쓰기하는 방식이 다르던데, 어떤 방식이 제일 좋은 방식인가요?The New Hacker's Dictionary에 의하면 크게 네 가지 들여쓰기 및 중괄호 표기법이 있음.① K&R 방식 : 왼쪽 .. 2024. 9. 5.
[5-3] switch문 - C언어에는 계단식 if문 대신 switch문을 사용할 수 있음.// 1if (grade == 4) { printf("훌륭해요!")} else if (grade == 3) { printf("좋아요!");} else if (grade == 2) { printf("평균이네요!");} else if (grade == 1) { printf("좋지 않아요!");} else if (grade == 0) { printf("좀 더 노력하세요!");} else { printf("잘못된 학점입니다");}// 2switch (grade) {case 4: printf("훌륭해요!") break;case 3: printf("좋아요!"); break;case 2: pr.. 2024. 9. 5.
[5-2] if문 if문은 프로그램이 표현식의 값을 사용해 2가지 선택지 중 하나를 고르게 만듦. if ( expression ) statement표현식을 감싸고 있는 괄호는 필수임.표현식의 값이 참이면(0이 아니라면), 괄호 뒤의 구문이 실행됨. 📌 복합문- if문이 여러 구문을 제어하게 만들고 싶을 때 사용하는 구문 복합문이 if 문에 사용될 때 ex)if (line_num == MAX_LINES) { line_num = 0; page_num++;} - 구조상 구문 1개만 사용해야하지만, 실제로는 여러 구문이 필요할 때 자주 사용됨.  📌 else 절- if문은 else문을 포함할 수 있음.if (i > j) max = i;else max = j; - if문 중복도 가능함.if (i >.. 2024. 9. 5.
[5-1] 논리표현식 - if처럼 C언어의 몇 가지 구문들은 표현식의 값이 '참'인지, '거짓'인지 반드시 확인해야 함.  ex) if문이 i - 많은 프로그래밍 언어에서 i  📌 관계 연산자- 표는 수학에서 사용되는 , ≤, ≥와 기본적으로 동일하지만, 결과값으로 1 or 0이 나옴.  📌 동등 연산자- 관계 연산자는 다른 프로그래밍 언어에서 흔히 사용하는 기호를 그대로 사용하지만, 동등 연산자는 좀 특수한 기호를 사용함.- 관계 연산자처럼 좌향결합적이며, 결과값으로 0 또는 1을 냄. 다만, 관계 연산자보다 평가 순서가 낮음.i 두 개는 같음.  📌 논리 연산자- 논리연산자는 and, or, not으로 구성됨.- ! 연산자는 단항, &&아 ||는 이항임.- 결과값으로 0 또는 1을 반환함.- 피연산자들은 주로 0이나.. 2024. 9. 4.
Q&A (pow, fmod, 연산자) 📌 C언어는 지수연산자가 없던데, 그러면 제곱 연산을 할 수 있죠? - 정수를 작은 양의 정수만큼 제곱하는 건 그만큼 곱해주면 됨. (i 세제곱은 i * i * i)- 정수가 아닌 숫자만큼 제곱할 거면, pow 함수가 필요함.   *pow() 함수는 y의 거듭제곱에 대한 x의 값을 계산#include double pow(double x, double y);  📌 % 연산자를 고정소수 피연산자에도 적용하고 싶은데 컴파일이 안되네요. 어떻게 해야하죠? - % 연산자는 정수 피연산자를 필요로 함. fmod를 써보는 건 어떨까?   *fmod() 함수는 x/y의 부동 소수점 나머지를 연산함. 결과의 절대값은 항상 y의 절대값보다 작고, 결과는 x와 같은 부호를 가짐.#include double fmod(do.. 2024. 9. 3.