Cute Running Puppy

C언어 18

C_18DAY

동적할당 입니다. 특징 입니다. new int란 어제 3개중 heap에 만드는 메모리 입니다. heap의 특징입니다. delete변수를 이용해 삭제가 가능합니다. 또 갯수를 변수로 지정할 수 있습니다. delete변수를 쓰자마자 p는 삭제되게 됩니다. 갯수를 변수로 저장하는건 new int[] 대괄호 안에 변수로 만들고 싶은것을 쓰면 됩니다. 배열도 만들 수 있습니다. 다음은 더블 포인터 입니다. 표현은 포인터의 표현과 비슷합니다. *과 p를 하나씩 더 붙여줍니다.

C언어 2019.02.08

C_17DAY

메모리 영역이란? 3가지 영역으로 나뉘어 집니다. stack, heap, data로 나뉘어 지는데 stack에는 지역변수가 저장됩니다. 이때 지역변수란 흔히쓰는 {}중괄호 안의 변수를 말합니다. data는 전역변수와 전역함수로 이루어 지는데 왼쪽벽에 만들어진 변수라 합니다. 왼쪽 벽이란 무엇이냐? 이런 숫자들을 뜻합니다. 마지막에는 생략되어 있는 것이 있는데 main();이 생략되어 있습니다. 다음은 포인터 변수 입니다. 포인터 변수란 일반 변수의 주소를 저장할 수 있는 변수 입니다. 표현은 이렇게 합니다.] 그럼 주소는 왜 저장하느냐? 원본변수가 아닌 다른변수가 원본의 값을 변경할 수 있기 때문입니다. 실행해 보겠습니다. a는 5라는 값을 저장했기 때문에 5라 출력됩니다. a의 주소는 실행할 때 마다 ..

C언어 2019.02.07

C_16DAY

어제는 함수의 선언부와 구현부를 분리하지 않았습니다. 따라서 구현순서를 바꿀 수 없었죠. 그러나 이것을 하면 달라지게 됩니다. 우선 cpp파일에는 main함수만 남기고 싹다 지웁니다. main함수에는 함수호출 [test()]만 남아있어 깔끔합니다. 그리고 파일을 또 만드는데 이번엔 cpp파일이 아닌 헤더 파일을 만들어 줍니다. 헤더파일에는 프로그램에서 사용할 유용할 정보들을 미리 정의 할 수 있습니다. 그리고 main함수는 여기에 적을 수 없지만 나머지 모든 함수는 이곳에 적을 수 있습니다. 이제 여기엔 #include 를 쓰고 함수 선언부를 써줍니다. ( void test (){} 함수가 이렇게 생겼다면 함수 선언부는 void test(); 중괄호를 지우고 세미콜론을 붙여주면 됩니다.) 그리고 처음 사..

C언어 2019.02.01

C_15DAY

함수입니다. 함수의 특징은 모든 코드는 함수 안에서 작동하고 반드시 main보다 위에 있어야 합니다. 흔히 썼던 void main (){}도 main함수 인데요 main함수는 프로그램의 시작이자 끝입니다. 이 안에서 함수를 불러 작동하도록 지시할 수 있습니다. 함수의 종류에는 크게 2가지가 있는데요 sum함수와 fac함수 입니다. 우선 sum함수를 보면 쓸때 void main과 같이 앞에 void를 붙여주고 그안에 작성합니다. 예를 들어 10부터 1까지 합을 구하려면 그전에 했던것처럼 합계구하는 공식을 써줍니다. 여기서 끝이 아닙니다. sum()를 main함수 안에 써줘야 합니다. sum()을 쓴 만큼 실행됩니다. 실행하면 55가 뜹니다. 나머지 fac함수는 팩토리얼을 구하는 함수입니다. ex) 5! =..

C언어 2019.01.31

C_14DAY

반복문의 종류에는 while뿐만 아니라 for도 있습니다.for은 while보다 더 축약해서 쓸 수 있습니다. 위 처럼 while은 초기식 조건식 증감식 을 내려가며 써야했지만 for을 쓰면 한줄로 간단하게 쓸 수 있습니다. 다음은 2차원 반복문 입니다. for과 for을 두번쓰면 일자로 나타나게 되는데 먼저쓰는게 세로줄 그다음으로 쓰는게 가로줄이 됩니다. 세로줄을 4보다 작게, 가로줄을 2보다 작게하면 세로줄은 0~3까지, 가로줄은 0~1까지 나타나게 됩니다. (이때 i++ 란 i = i + 1의 축약형 입니다.) 이것을 이용해 구구단도 표현할 수 있습니다. 구구단은 9단까지 하려면 가로와 세로 둘다 9까지 표현해야 합니다. 따라서 10보다 작다라 쓰고 출력하는 것을 %d * %d = %d 라 해줍니다..

C언어 2019.01.29

C_13DAY

max값을 찾는 방법입니다. 맥스를 찾으려면 우선 max에 기준값을 하나 설정해서 그값을 나머지와 전부 비교해서 max가 더 작으면 max값을 변경하는 방식입니다. 위에선 기준값을 설정하는 과정이 int max = arr[0];에 나와있고 비교하는 과정은 if(max < arr[n])에 나와 있습니다. 이것을 실행하면? 최대값인 340이 나오게 됩니다. 문제입니다. 저장되어 있는 값중 1등 번호를 출력하라는 문제입니다. 출력할때는 num에 저장되있는 값을 출력해야 합니다. (max는 score 과 같다 : score에서 최대값 가림). 3번 반복하기 때문에 반복문을 쓰고 최대값 (1등)을 나오게 합니다. 실행해보면 최대값인 60, 즉 1003이 나오게 됩니다. 3 3 0 0 3 0 3 0 에서 연속되어 ..

C언어 2019.01.28

C_12DAY

배열문제 입니다. 위에 써져있는 0 0 0 0 4 0 0 0 에서 4를 1을 입력하면 왼쪽으로 이동, 2를 입력하면 오른쪽으로 이동하라는 문제입니다. 우선 int p = 4; 는 플레이어의 위치 입니다. 다음으로 반복문을 쓰고 1과 2를 입력하게 만듭니다. 그다음 if 문을 써서 1을 누를때와 2를 누를때의 경우를 저장합니다. 1을 누를때는 왼쪽으로 이동해야 하니 p-1 , p를 값교환을 해줍니다. 2를 누를때도 마찬가지 입니다. 이것을 실행하면 저장한 것 처럼 뜹니다. 여기서 1을 누르면 4가 왼쪽으로 이동하는 것을 확인할 수 있습니다. 다시 실행하여 이번엔 2를 누르면 4가 오른쪽으로 이동합니다. 이어서 로또문제 입니다. 로또 1과 로또 2 둘중 무엇이 당첨인지 고르는 문제인데요, 이때 당첨 조건은 ..

C언어 2019.01.25

C_11DAY

배열 문제입니다. 영화 티켓예매 문제 인데 자리가 8자리 있고 예매 할때마다 1000원 씩 감소, 예매한 자리는 또 예매 할 수 없는 약간 복잡한 문제 입니다. 8자리 있기 때문에 반복문 n 번호 순서는 0 1 2 3 4 5 6 7 이기 때문에 2를 선택했을시 3번째 자리가 선택됩니다. 선택하면 두번 예매는 안되므로 0이 1로 바뀌게 되는것을 볼 수 있습니다. 또 4번을 선택해보면 5번째 자리가 예매되고 돈은 또 1000원 감소, 그자리는 1로 변합..

C언어 2019.01.24

C_10DAY

배열 문제 입니다. 대괄호 안에 있는 [n] // 숫자를 입력하면 값을 출력하라는 문제입니다. 쉽습니다. 방번호를 입력하기 위해 index(방번호)를 저장하고 입력하면 값이 출력될 수 있게 printf("%d" , arr[index]);를 써줍니다. 이때 index는 방번호를 입력하기 때문에 arr[index]는 내가 쓴 방번호에 맞는 값이 나오게 됩니다. 실행하고 1을 입력해보면 1에 저장되어 있는 값 30이 출력됩니다. 배열 팁 위에 것과 달리 int arr[5]라 쓰고 중괄호 안에 값을 쓰면 값이 한번에 저장됩니다. 위의 문제와 반대문제 저장되어 있는 값을 입력하면 방번호를 출력하라는 문제입니다. 숫자 입력 ==> 반복문을 쓰고 내가 입력한 값과 저장된 값이 같다 하고( if(me == arr[n]..

C언어 2019.01.23

C_09DAY

반복문 문제입니다. 369 게임하는 건데요 일의 자리가 3일때 짝 6일때 짝 9일때 짝 십의자리가 3,6,9일때 짝을 계속하고 33 36 39 63 66 69 93 96 99... 일때 짝짝을 쳐야합니다. 우선 a 와 b 를 지정하는 데요 a는10의 자리를 나타내기 위한 b 는 1의 자리를 나타내기 위해 씁니다. 그리고 if 문을 써서 a 가 3이거나 6이거나 9일때 count 를 1씩 더하게 되고 b 도 3이거나 6이거나 9 일때 도 마찬가지입니다.(count 0부터 시작) count 는 2가 될때 짝짝 , 1일 때는 짝 /// 실행하면? 이렇게 출력됩니다. 다음 문제 1에서 5를 순차적으로 입력하면 종료되게하는 식을 만들어 보라는 문제입니다. 예를 들어 1을 치고 5까지 쳤는데 중간에 2를 빼먹었으면..

C언어 2019.01.22