전체 글
개인 기록용 웹 사이트
-
문자열은 C에서 다양한 문자표현을 나타내기 위해 사용한다. 내부적으로 문자열은 char자료타입의 배열로 이루어져있으며 이것은 포인터와 같다고 할 수 있다. 영문같은 경우 알파벳 1개당 1byte의 크기를 가지며 한글같은 경우 글자 1개당 2byte의 크기를 가진다. 이것은 array의 크기가 10개의 문자가 들어갈 수 있는 공간이라고 했을때 영문은 10자, 한글은 5자 들어갈 수 있다. 배열은 선언 후 배열 몇번쨰의 값의 메모리 주소 자체가 배열 자체가 된다. 이런 의미에서 배열은 포인터라고 할 수 있다. array[1]에서 5의 값이 들어있다면 &array[1]은 해당 값이 들어있는 곳의 주소를 말한다. = 포인터 1001 개 만큼의 문자가 들어갈 수 있는 하나의 문자열 input변수를 만든다. get..
C 프로그래밍 (14) - 문자열 함수 string문자열은 C에서 다양한 문자표현을 나타내기 위해 사용한다. 내부적으로 문자열은 char자료타입의 배열로 이루어져있으며 이것은 포인터와 같다고 할 수 있다. 영문같은 경우 알파벳 1개당 1byte의 크기를 가지며 한글같은 경우 글자 1개당 2byte의 크기를 가진다. 이것은 array의 크기가 10개의 문자가 들어갈 수 있는 공간이라고 했을때 영문은 10자, 한글은 5자 들어갈 수 있다. 배열은 선언 후 배열 몇번쨰의 값의 메모리 주소 자체가 배열 자체가 된다. 이런 의미에서 배열은 포인터라고 할 수 있다. array[1]에서 5의 값이 들어있다면 &array[1]은 해당 값이 들어있는 곳의 주소를 말한다. = 포인터 1001 개 만큼의 문자가 들어갈 수 있는 하나의 문자열 input변수를 만든다. get..
2020.08.08 -
포인터는 기본적으로 C언의 강력한 무기이다. 포인터는 어떤것들을 가리키는, 즉 특정한 데이터가 저장된 메모리 주소를 저장하는 변수이다. 어떤 데이터의 주소 그 자체를 가리키기 때문에 이것을 응용해 다양한 연산이 가능하다. 프로그램의 어떠한 위치에서 시행되더라도 특정한 주소를 그대로 이용하기 때문에 즉시 값이 변경된다. temp는 포인터 x가 가리키는 위치에 값을 넣어준다. 즉 x라는 포인터가 가리키는 특정한 위치에 있는 값을 가져와서 temp에 넣어주는 것이다. 그다음 x가 가리키는 값을 y가 가리키는 값으로 바꿔주고 y가 가리키는 값에 temp를 넣어주면 완벽히 swap이 이루어진다. 메인함수에 swap함수를 가져와 매개변수로 x와 y의 주소를 입력해주면 x와 y의 값이 바뀐 것을 볼 수 있다. 만약 ..
C 프로그래밍 (13) - 포인터 pointer포인터는 기본적으로 C언의 강력한 무기이다. 포인터는 어떤것들을 가리키는, 즉 특정한 데이터가 저장된 메모리 주소를 저장하는 변수이다. 어떤 데이터의 주소 그 자체를 가리키기 때문에 이것을 응용해 다양한 연산이 가능하다. 프로그램의 어떠한 위치에서 시행되더라도 특정한 주소를 그대로 이용하기 때문에 즉시 값이 변경된다. temp는 포인터 x가 가리키는 위치에 값을 넣어준다. 즉 x라는 포인터가 가리키는 특정한 위치에 있는 값을 가져와서 temp에 넣어주는 것이다. 그다음 x가 가리키는 값을 y가 가리키는 값으로 바꿔주고 y가 가리키는 값에 temp를 넣어주면 완벽히 swap이 이루어진다. 메인함수에 swap함수를 가져와 매개변수로 x와 y의 주소를 입력해주면 x와 y의 값이 바뀐 것을 볼 수 있다. 만약 ..
2020.08.07 -
배열을 이용해 구구단 표도 만들 수 있다. int multiplier[20][20]은 들어갈 원소의 개수이며 다차원 배열의 예시이므로 없어도 출력은 가능하다. 다차원 배열을 통해 학생 5명의 국어, 영어 점수를 계산하는 식을 만들어보자. 행이 5, 열이 2로 총 10개의 데이터가 만들어진다. { 0, )가 의미하는 바는 일차원 배열을 할당할 때 모든 데이터의 값에 0을 넣어주겠다는 읨이다.
C 프로그래밍 (12) - 다차원 배열배열을 이용해 구구단 표도 만들 수 있다. int multiplier[20][20]은 들어갈 원소의 개수이며 다차원 배열의 예시이므로 없어도 출력은 가능하다. 다차원 배열을 통해 학생 5명의 국어, 영어 점수를 계산하는 식을 만들어보자. 행이 5, 열이 2로 총 10개의 데이터가 만들어진다. { 0, )가 의미하는 바는 일차원 배열을 할당할 때 모든 데이터의 값에 0을 넣어주겠다는 읨이다.
2020.08.07 -
배열은 데이터를 담아놓는 상자와도 같다. 상수 5를 지정해주고 array[NUMBER]를 입력해주면 NUMBER의 수치 많큼 배열의 크기를 지정해준다는 의미이다. 즉 i가 0번째부터 4번째까지 5개의 배열 값으로 반복하여 max는 0부터 시작하여 i값이 들어올때 그 값이 0보다 크고 이전 배열보다 크다면 그 값을 max에 입력시키고 순서는 해당 index의 i번째 순서가 된다. 최솟값을 구하는 공식도 위와 같다. max값을 구할때는 기본값으로 0을 주었지만, min값을 구할때는 정수의 최대형인 INT MAX를 넣어 어떻게든 기본값이 바뀌게끔 만드는 것이다. 홀수형의 최댓값과 oddMax, 짝수형의 최댓값 evenMax를 구하는 코드이다.
C 프로그래밍 (11) - 배열 array배열은 데이터를 담아놓는 상자와도 같다. 상수 5를 지정해주고 array[NUMBER]를 입력해주면 NUMBER의 수치 많큼 배열의 크기를 지정해준다는 의미이다. 즉 i가 0번째부터 4번째까지 5개의 배열 값으로 반복하여 max는 0부터 시작하여 i값이 들어올때 그 값이 0보다 크고 이전 배열보다 크다면 그 값을 max에 입력시키고 순서는 해당 index의 i번째 순서가 된다. 최솟값을 구하는 공식도 위와 같다. max값을 구할때는 기본값으로 0을 주었지만, min값을 구할때는 정수의 최대형인 INT MAX를 넣어 어떻게든 기본값이 바뀌게끔 만드는 것이다. 홀수형의 최댓값과 oddMax, 짝수형의 최댓값 evenMax를 구하는 코드이다.
2020.08.06 -
숫자피라미드를 만드는 코드이다. 반복함수는 오직 for, while 문으로만 구성이 가능하다. a에 10을 입력하면 i는 총 10번을 반복을 할것이다. 두번째 for문은 현재 i가 0이기 때문에 1을 한번 출력할 것이고 첫번째 for문의 2회차에서 i는 1이되며 두번째 for문이 2회차에서 j는 0일때 1을 출력, 1일때 2를 출력, 이런 식으로 피라미드가 완성된다. 재귀함수를 이용해 문자열을 n번 출력하는 코드이다. 재귀함수란 자신의 함수 안에 또 자신의 함수를 사용하는 것이다. count에 10을 넣어 실행하면 else가 실행되며 print에 9가 들어가게 된다. 총 0까지 반복적으로 문자열을 출력한다. 재귀 함수를 이용해 조합을 구현할 수도 있다. 예를 들어 10과 5라는 값을 입력하면 10C5가 ..
C 프로그래밍 (10) - 반복 함수, 재귀 함수숫자피라미드를 만드는 코드이다. 반복함수는 오직 for, while 문으로만 구성이 가능하다. a에 10을 입력하면 i는 총 10번을 반복을 할것이다. 두번째 for문은 현재 i가 0이기 때문에 1을 한번 출력할 것이고 첫번째 for문의 2회차에서 i는 1이되며 두번째 for문이 2회차에서 j는 0일때 1을 출력, 1일때 2를 출력, 이런 식으로 피라미드가 완성된다. 재귀함수를 이용해 문자열을 n번 출력하는 코드이다. 재귀함수란 자신의 함수 안에 또 자신의 함수를 사용하는 것이다. count에 10을 넣어 실행하면 else가 실행되며 print에 9가 들어가게 된다. 총 0까지 반복적으로 문자열을 출력한다. 재귀 함수를 이용해 조합을 구현할 수도 있다. 예를 들어 10과 5라는 값을 입력하면 10C5가 ..
2020.08.05 -
사용자 정의 함수는 기본적으로 반환형, 함수명, 매개변수의 구조로 이루어진다. 함수가 종료될 때 반환형이 int라면 정수형의 반환값을 가진다는 것이다. 예를 들면 위 처럼 minute 혹은 1, 0 이 될 수도 있다. 반환값은 함수를 불러온 값에 반환이 된다. 메인 함수에서 counter 함수를 불러왔을때 그 반환값이 a로 들어가는 형식이다. 하지만 위의 경우 전역 변수가 존재함으로 반환값은 필요없다. 그럴땐 반환형에 void를 입력하면 반환하지 않겠다는 의미이다. 시간을 더해주는 프로그램 코드이다. 각각 시, 분, 더할 분을 입력하고 counter()를 불러옴으로써 계산을 해내는 것이다. 금액을 입력받았을 때 최소로 줄 수 있는 거스름 화폐의 개수를 구하는 코드이다. 예를 들어 11만원을 입력했을 때 ..
C 프로그래밍 (9) - 함수사용자 정의 함수는 기본적으로 반환형, 함수명, 매개변수의 구조로 이루어진다. 함수가 종료될 때 반환형이 int라면 정수형의 반환값을 가진다는 것이다. 예를 들면 위 처럼 minute 혹은 1, 0 이 될 수도 있다. 반환값은 함수를 불러온 값에 반환이 된다. 메인 함수에서 counter 함수를 불러왔을때 그 반환값이 a로 들어가는 형식이다. 하지만 위의 경우 전역 변수가 존재함으로 반환값은 필요없다. 그럴땐 반환형에 void를 입력하면 반환하지 않겠다는 의미이다. 시간을 더해주는 프로그램 코드이다. 각각 시, 분, 더할 분을 입력하고 counter()를 불러옴으로써 계산을 해내는 것이다. 금액을 입력받았을 때 최소로 줄 수 있는 거스름 화폐의 개수를 구하는 코드이다. 예를 들어 11만원을 입력했을 때 ..
2020.08.05 -
scanf("%d". &x); 는 x라는 정수에 사용자가 입력한 값을 받아 삽입하는 의미의 코드이다. 입력받을 자료형에 따라 %d, %f, %c, %lf 등 다양한 문법을 맞게 사용해야 한다. 간단한 계산기를 만드는 코드이다. x와 y값, 그리고 x + y 는 각각 정수형 값으로 출력되며 z값은 char형으로 출력된다. 모든 조건 (5개의 연산자)을 만족않고 종료문구에서 continue를 입력하게 되면 밑의 코드는 모두 무시하고 다시 되돌아가서 작업을 다시 시작하게 된다. break는 즉시 반복을 멈추고 탈출하게 된다. 하지만 출력을 해보면 '종료할까요?' 문구 뒤에 입력하지 않았던 문구들이 출력되는 경우가 발생한다. 이것은 C언어에서 버퍼를 처리해주지 않아서이다. 엔터또한 C에서 문자로 취급하기 때문에..
C 프로그래밍 (8) - 기본 입출력 scanf()scanf("%d". &x); 는 x라는 정수에 사용자가 입력한 값을 받아 삽입하는 의미의 코드이다. 입력받을 자료형에 따라 %d, %f, %c, %lf 등 다양한 문법을 맞게 사용해야 한다. 간단한 계산기를 만드는 코드이다. x와 y값, 그리고 x + y 는 각각 정수형 값으로 출력되며 z값은 char형으로 출력된다. 모든 조건 (5개의 연산자)을 만족않고 종료문구에서 continue를 입력하게 되면 밑의 코드는 모두 무시하고 다시 되돌아가서 작업을 다시 시작하게 된다. break는 즉시 반복을 멈추고 탈출하게 된다. 하지만 출력을 해보면 '종료할까요?' 문구 뒤에 입력하지 않았던 문구들이 출력되는 경우가 발생한다. 이것은 C언어에서 버퍼를 처리해주지 않아서이다. 엔터또한 C에서 문자로 취급하기 때문에..
2020.08.04 -
반복문 while은 주어진 조건을 만족시킬 때 무한정 반복한다. 위에서 x가 1000이하일때까지 계속해서 sum의 값에 1을 더하여 sum값을 정하고 x의 값을 1씩 계속 늘려 1에서 1000까지의 합을 구하는 코드이다. for도 반복문으로 사용된다. for문은 초기화 단계, 조건 단계, 연산 단계로 이루어진다. 이중 for문을 이용해 위와 같이 사각형 형태의 박스를 만들 수 있다. 변수 x와 y를 선언하고 첫 for구문의 반복을 시작한다. 그다음 들어있는 두번째 for구문의 반복을 시작한다. 두번째 for문은 y의 값이 0으로 시작하여 y의 값이 N의 값, 즉 10 이하일때까지 1씩 증가하며 반복한다. 반복함으로써 네모를 출력하는 것이다. 두번째 for문 종료 후 줄바꿈이 실행되고 첫번째 for문이 다..
C 프로그래밍 (7) - 반복문 for / while반복문 while은 주어진 조건을 만족시킬 때 무한정 반복한다. 위에서 x가 1000이하일때까지 계속해서 sum의 값에 1을 더하여 sum값을 정하고 x의 값을 1씩 계속 늘려 1에서 1000까지의 합을 구하는 코드이다. for도 반복문으로 사용된다. for문은 초기화 단계, 조건 단계, 연산 단계로 이루어진다. 이중 for문을 이용해 위와 같이 사각형 형태의 박스를 만들 수 있다. 변수 x와 y를 선언하고 첫 for구문의 반복을 시작한다. 그다음 들어있는 두번째 for구문의 반복을 시작한다. 두번째 for문은 y의 값이 0으로 시작하여 y의 값이 N의 값, 즉 10 이하일때까지 1씩 증가하며 반복한다. 반복함으로써 네모를 출력하는 것이다. 두번째 for문 종료 후 줄바꿈이 실행되고 첫번째 for문이 다..
2020.08.04 -
score 변수를 이용해 학점을 내는 코드. 만약 if 스코어가 90이라면 학점 A가 출력되며 그렇지 않고 80일 경우 B가 출력되고 ... 등으로 계산된다. 윤년은 4년당 한번씩 2월의 일수가 29일이 되는것으로 4년마다, 그리고 100년 단위가 아닐때, 그러나 400년 단위에서는 윤년으로 설정하도록 되어있다. 이 글은 프로그래머 나동빈님의 강의 내용을 개인적인 학습을 목적으로 정리하여 쓴 글임을 밝힙니다.
C 프로그래밍 (6) - 조건문 ifscore 변수를 이용해 학점을 내는 코드. 만약 if 스코어가 90이라면 학점 A가 출력되며 그렇지 않고 80일 경우 B가 출력되고 ... 등으로 계산된다. 윤년은 4년당 한번씩 2월의 일수가 29일이 되는것으로 4년마다, 그리고 100년 단위가 아닐때, 그러나 400년 단위에서는 윤년으로 설정하도록 되어있다. 이 글은 프로그래머 나동빈님의 강의 내용을 개인적인 학습을 목적으로 정리하여 쓴 글임을 밝힙니다.
2020.08.04 -
프로그래밍에서 x와 y의 값이 같은지 비교하기 위한 연산자로는 =를 두번 사용한다. 10번 코드에서 수식이 있는 경우 수식을 해결한 후 왼쪽에 있는 값(x)이 %d로 들어가게 된다. 프로그래밍에서는 참이 1을 의미하고 거짓이 0을 의미한다. &&연산자는 and이다. 즉 양쪽이 모두 true여야 1을 출력한다. ||는 or연산자이다. 둘중에 하나만 참이여도 1을 출력한다. 절댓값, 최댓값, 최솟값을 구하는 식. absoluteX는 절댓값을 구하는 변수이다. x가 0보다 크다면? 왼쪽을 출력하고 그렇지않다면 오른쪽을 출력하여 절댓값을 구하는 원리이다. 최댓값은 x가 y보다 크다면 왼쪽을 출력하며 최솟값은 x가 y보다 작을경우 왼쪽을 출력한다. pow()함수는 거듭제곱을 하는 함수이다. pow()를 사용하기 ..
C 프로그래밍 (5) - 연산자2프로그래밍에서 x와 y의 값이 같은지 비교하기 위한 연산자로는 =를 두번 사용한다. 10번 코드에서 수식이 있는 경우 수식을 해결한 후 왼쪽에 있는 값(x)이 %d로 들어가게 된다. 프로그래밍에서는 참이 1을 의미하고 거짓이 0을 의미한다. &&연산자는 and이다. 즉 양쪽이 모두 true여야 1을 출력한다. ||는 or연산자이다. 둘중에 하나만 참이여도 1을 출력한다. 절댓값, 최댓값, 최솟값을 구하는 식. absoluteX는 절댓값을 구하는 변수이다. x가 0보다 크다면? 왼쪽을 출력하고 그렇지않다면 오른쪽을 출력하여 절댓값을 구하는 원리이다. 최댓값은 x가 y보다 크다면 왼쪽을 출력하며 최솟값은 x가 y보다 작을경우 왼쪽을 출력한다. pow()함수는 거듭제곱을 하는 함수이다. pow()를 사용하기 ..
2020.08.04 -
연산자에는 +, -, *, /, %, ++,! 등이 존재한다. 위와 같이 60초를 분당 초로 상수로 정의하고 원하는 초를 분과 초로 바꿔주는 계산이 가능하다. ++, -- 는 증감연산자이다. 변수 x는 0의 값으로 선언되어 첫 출력시 0으로 출력된다. 그다음 x의 값에 1이 추가되어 두번째 출력시 1로 출력된다. 그다음은 x가 우선 1로 출력이 된 이후의 증감이 이루어져 다음 네번째 출력시 값은 0이 된다. 다섯번째 출력시에는 x의 값이 1 줄어든 후 출력이 된다. 대수학에서의 등호와 프로그래밍에서의 등호는 다르다. 프로그래밍의 등호는 왼쪽에 있는 변수에 오른쪽의 값을 넣어준다는 의미이다. %의 경우 x를 3으로 나눈 값의 나머지를 출력한다. 이 글은 프로그래머 나동빈님의 강의 내용을 개인적인 학습을 목..
C 프로그래밍 (4) - 연산자연산자에는 +, -, *, /, %, ++,! 등이 존재한다. 위와 같이 60초를 분당 초로 상수로 정의하고 원하는 초를 분과 초로 바꿔주는 계산이 가능하다. ++, -- 는 증감연산자이다. 변수 x는 0의 값으로 선언되어 첫 출력시 0으로 출력된다. 그다음 x의 값에 1이 추가되어 두번째 출력시 1로 출력된다. 그다음은 x가 우선 1로 출력이 된 이후의 증감이 이루어져 다음 네번째 출력시 값은 0이 된다. 다섯번째 출력시에는 x의 값이 1 줄어든 후 출력이 된다. 대수학에서의 등호와 프로그래밍에서의 등호는 다르다. 프로그래밍의 등호는 왼쪽에 있는 변수에 오른쪽의 값을 넣어준다는 의미이다. %의 경우 x를 3으로 나눈 값의 나머지를 출력한다. 이 글은 프로그래머 나동빈님의 강의 내용을 개인적인 학습을 목..
2020.08.03 -
int, double, char, float은 대표적인 변수의 데이터 타입들이다. 12개월을 MONTHS라는 상수로 규정한 후 연봉 값을 구하는 코드. monthSalary 변수를 1000.5로 선언하고 MONTHS를 곱하면 연봉값이 출력된다. 아스키코드는 하나의 char형이 담을 수 있는 모든 문자에 대한 내용을 보여주는 코드표이다. 즉 A는 내부적으로 65의 값을 가지고 있고 x = 65 를 출력하면 대문자 A가 출력되는 것이다. %c는 x를 char형으로 출력시킨다는 의미로 데이터타입을 int형으로 바꿔도 결과는 동일하다. &d 는 정수형으로 바꿔준다는 의미로 이것을 z에 넣으면 B의 값 66이 출력될 것이다. 10진수를 8진수와 16진수로 바꿔주는 작업도 가능하다. %d는 기본적으로 10진수이며 ..
C 프로그래밍 (3) - 변수 데이터 타입int, double, char, float은 대표적인 변수의 데이터 타입들이다. 12개월을 MONTHS라는 상수로 규정한 후 연봉 값을 구하는 코드. monthSalary 변수를 1000.5로 선언하고 MONTHS를 곱하면 연봉값이 출력된다. 아스키코드는 하나의 char형이 담을 수 있는 모든 문자에 대한 내용을 보여주는 코드표이다. 즉 A는 내부적으로 65의 값을 가지고 있고 x = 65 를 출력하면 대문자 A가 출력되는 것이다. %c는 x를 char형으로 출력시킨다는 의미로 데이터타입을 int형으로 바꿔도 결과는 동일하다. &d 는 정수형으로 바꿔준다는 의미로 이것을 z에 넣으면 B의 값 66이 출력될 것이다. 10진수를 8진수와 16진수로 바꿔주는 작업도 가능하다. %d는 기본적으로 10진수이며 ..
2020.08.03