본문 바로가기

C언어23

C언어 기초 9. 반복문 while do ... while for break continue 같은 동작 혹은 규칙을 갖는 동작을 반복해야 하는 경우가 있다. 예를 들어 1~10 출력, 구구단 출력 등이 있다. 1) while while문은 통해 반목문이 돌아가는 방식을 이해해보자. int i = 1; while(i 2019. 12. 7.
C언어 기초 8. 조건문 if if ... else if ... else if ... else switch 지금까지는 프로그램의 흐름이 정해져 있었다. 하지만 조건문을 알고 나면 흐름을 통제하여 프로그램을 실행할 때마다 다른 결과를 가져올 수 있다. 조건문에는 if문과 switch문이 있으며, if문에는 if, if ... else, if ... else if ... else 세 종류가 있다. 1) if if문은 if(조건) {...} 의 구조를 갖는다. 조건에 해당하는 부분이 참이 되면 {...} 부분을 실행하고 거짓이면 무시하고 넘어간다. 코드로 확인해 보자. int score; scanf("%d", &score); if (score >= 60) { printf("축하합니다! 합격입니다.\n"); } intput 80 out.. 2019. 9. 12.
C언어 기초 7. C언어 연산 기본 연산 비교 연산 논리 연산 전&후위 연산자 C언어가 기본적으로 기본 연산, 비교 연산, 논리 연산, 비트 연산, 전후위연산을 제공한다. C언어 기초편에서는 비트 연산을 제외한 나머지를 설명하도록 하겠다. 비트 연산은 활용할 일이 적고 활용하기 어렵다고 판단하여 C언어의 다음 시리즈에서 설명하기로 하였다. 1) 기본 연산 먼저 기본 연산은 덧셈+, 뺄셈-, 곱셈*, 나눗셈/을 말하는 것이고 곱셈 기호와 나눗셈 기호를 기억하라는 것 외에는 따로 설명할 것이 없을 것 같다. 추가로 프로그래밍 언어에서 대부분 지원하는 또 하나의 중요한 연산인 모듈로(modulo) 연산이 있다. 이 연산은 나눈 나머지를 구하는 연산이며 연산 기호는 %이다. 예를 들어 10 % 3 을 하면 10을 3으로 나눈 나머지가 1이므.. 2019. 9. 7.
C언어 기초 6. 주석 주석 1) 주석 대부분의 프로그래밍 언어는 주석 기능을 제공한다. 주석은 코드에 대한 이해를 돕기 위한 메모이며 실제 프로그램 동작에는 영향을 미치지 않는다. 주석은 한 줄 주석과 여러 줄 주석으로 나눌 수 있다. 한 줄 주석은 //로 나타낸다. 여러 줄 주석은 /*와 */로 감싸주는 식으로 사용할 수 있다. /* 최종 수정일 : 2019.09.07 작성자 : algosketch */ #include int main() { int a, b; printf("%d", a+b); // a+b 결과 출력 return 0; } 주석을 사용하는 이유는 자신과 남이 코드를 쉽게 읽을 수 있도록 도와주기 위해서다. 자신이 쓴 코드도 오래 지나고 나면 어떤 의도로 썼는지 기억하기 힘들다. 코드가 길어질수록 더욱 심하다... 2019. 9. 7.
C언어 기초 5. scanf() 함수 scanf() 1) scanf() scnaf() 함수는 프로그램 사용자로부터 값을 입력받도록 하는 함수이다. 사용자가 변수의 값을 정할 수 있다. int myScore; printf("당신의 점수는? "); scanf("%d", &myScore); printf("내 점수는 %d점입니다.", myScore); intput1 80 output1 당신의 점수는? 내 점수는 80점입니다. 실제 콘솔창에는 다음과 같은 결과가 보일 것이다. 당신의 점수는? 80 내 점수는 80점입니다. 캡쳐가 제한되는 환경에서 작성하는 글이므로, 실제로 코드를 실행해보며 이 블로그에서 표현하는 방식에 익숙해지기를 바란다. 또한 이 표현 방식은 작성자가 임의로 만든 것이 아니다. 이 코드에서는 변수 myScore의 값을 코드상에서 .. 2019. 8. 15.
C언어 // 알아두면 쓸모 있는 지식 3. 같은 숫자인데 거짓을 반환하는 이유 모종의 이유로 숫자를 int형이 아닌 char형으로 받아서 switch문을 다음과 같이 멋지게 완성했다. 혹은 int로 하더라도 결과는 같을 것이다. /* #include */ char choice; choice = getch(); switch(choice) { case 1: ... case 2: ... case 3: ... default: ... } 그리고 키보드로 1~3 사이의 값을 입력했다. 그러나 어떤 값을 입력하든 default로 넘어가는 것이다. 우리의 기대를 만족시켜줄 코드는 다음과 같이 짜야한다. /* #include */ char choice; choice = getch() - '0'; switch(choice) { case 1: ... case 2: ... case 3: ... defa.. 2019. 8. 15.
C언어 // 알아두면 쓸모 있는 지식 2. 문자열 비교하기 우리는 두 문자열 str1, str2가 같은지 알고 싶다. 하지만 str1과 str2의 문자열이 같든 다르든 str1 == str2 이런식으로 연산을 한다면 원하는 결과를 얻기 힘들다. 정확한 비교를 위해서는 다음과 같이 비교해야 한다. /* #include #include */ if (!strcmp(str1, str2)) printf("두 문자열은 동일하다"); 참고로 strcmp 는 string comparison 에서 나온 듯 하다. 그리고 위 조건식은 strcmp(str1, str2) == 0과 동일하다. strcmp는 두 문자열이 얼마나 다른지 그 수치를 반환하는 함수이다. 반환되는 값은 사전순(아스키코드 순)과 관련이 있다. 따라서 0이라는 값이 반환된다면 두 문자열은 0만큼 다르다. 즉, 같.. 2019. 8. 15.
C언어 기초 4. 변수와 자료형 변수와 자료형 정수 자료형 실수 자료형 1) 변수와 자료형 #include int main(void) { printf("Hello, World!"); return 0; } 우리의 첫 번째 코드이다. 이 코드에도 자료형이 숨어있다. int가 바로 자료형이다. 자료형의 역할은 숫자를 다룰 때 C언어에게 이 숫자가 어떤 숫자인지 알려주는 역할을 한다. C언어에서는 정수와 실수로 구분한다. int는 integer에서 세 글자를 따 온 것으로 정수를 나타낸다. 실수를 나타내는 자료형은 double이다. (double floating point에서 따온 것 같다.) 이전에 printf()함수를 공부하면서 %d를 이용해 다룬 숫자를 일회용으로 사용한 숫자이다. 숫자를 일회용으로 사용할 것이 아니라면 변수라는 형태로 .. 2019. 8. 4.
C언어 기초 3. printf() 함수 printf() 1) printf() 본 글에 앞서 Hello, World! 를 출력하는 코드를 살펴봤었다. 이번에는 그 코드 중 printf()에 관하여 설명하고자 한다. printf()는 소괄호() 안에 있는 문자열을 모니터 상에 출력해준다.(100% 정확한 표현은 아니다.) 문자열은 "" 사이에 채워넣을 수 있다. "Hello, World!"는 Hello, World!를 문자열로 나타낸 것이다. 마찬가지로 "123"과 같이 숫자도 문자열로 표현할 수 있다. 전 글에서 한 가지 빼 먹은 글이 있는데 원래는 printf("Hello, World!\n"); 이렇게 작성하려고 했었다. C언어를 처음 공부하는 입장이라면 무엇이 바뀌었는지 쉽게 눈에 들어올 것이다. '\n'가 추가됐다. 이 문자는 '\n'가 .. 2019. 8. 4.