본문 바로가기

c언어

발판 만들기 프로그램 임의의 5x5 점수판에 대해서 ( 0, 0)에서부터 시작해서 점수판을 상하좌우로 나아가자. 이때 현재 밟고 있는 점수와 가장 차이가 적은 발판으로 진행한다고 할 때, 받는 점수와 총 점을 구해보자. 단, 발판을 몇 번 밟을 건지는 입력받도록 하고, 최초 시작은 (0, 0)부터 시작하며 이 발판에 해당하는 점수도 총점에 포함된다. 점수는 1부터 100까지. 예를 들어 7번 움직인다고 가정했을 때, 소스 코드 #include //표준입출력 #include //rand()함수사용가능 (0~32367사이) #include //시간함수지만 난수 생성 시 사용 #include int main() { int arr[5][5]; //배열 가로세로 5개씩. int i, j, step; int x, y, c_x, c_y,.. 더보기
[자료구조] malloc을 이용한 더블포인터와 주소 안녕하세요 지토우에요.오늘은 malloc을 이용해 더블포인터 소스를 공부해봅시다. 이 소스에 gdb를 돌리면 어떻게 될까요~? [ds1603:~, 4]$ gdb malloc3GNU gdb (GDB) Red Hat Enterprise Linux (7.2-48.el6)Copyright (C) 2010 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law. Type "show copying"and "show warranty".. 더보기
[C언어] 포인터 변수의 선언 [C언어] 포인터 변수의 선언 안녕하세요 지토우에요.지난 시간에는 포인터가 어떤 것인지에 대해 간략하게 배웠지요?오늘은 포인터 변수의 선언과 사용에 대해 배울 것입니다.그럼 오늘도 열공합시다 ^0^ 1. 포인터 변수의 선언 포인터 변수도 변수이므로 사용하기 위해서는 선언해야 합니다.다음은 포인터 변수의 선언 형식을 나타내고 있습니다.포인터 변수의 선언은 자료형 다음에 * 연산자를 붙이고 포인터 변수의 이름을 쓰는 식입니다. 자료형 포인터 변수의 자료형을 지정, 자료형 다음에 * 연산자를 붙임포인터 변수 이름 주소를 저장할 변수의 이름을 지정NULL 포인터 설정 포인터 변수 선언 시 NULL 로 초기화 NULL 포인터란 무엇일까요?포인터 변수에 아무 주소도 저장하지 않겠다는 의미입니다.NULL은 '널' 이.. 더보기
[C언어] 포인터 이해하기 [C언어] 포인터 이해하기 안녕하세요. 지토우에요. 오늘은 특이한 변수를 배워보겠습니다. 바로 포인터, 혹은 포인터 변수라고 부르는 아이인데요. 개념적으로 잘 이해하고 계셔야 합니다! 1. 포인터란? 우리는 포인터 변수에 대해 배우면서 & 연산자와 * 연산자를 많이 사용하게 됩니다. 이름부터 알아볼까요? & : Ampersand (앰퍼센드) * : Asterisk(아스테리스크) 입니다. 앞서 이 연산자들에 대해 배웠습니다. & 연산자를 통해 주소를 알 수 있었고 * 연산자를 통해 주소에 저장된 값을 참조할 수 있었지요? 이 친구들을 포인터까지 확장시킵시다. 포인터 변수란 주소를 저장하는 변수 입니다. C언어의 장점 중 하나가 바로 포인터인데요. 기존의 변수는 데이터를 저장하지만 포인터는 메모리 공간의 주.. 더보기
[C언어] 1차원 배열의 주소와 값의 참조 [C언어] 1차원 배열의 주소와 값의 참조 안녕하세요 지토우에요~이번엔 1차원 배열의 주소와 값의 참조에 대해 공부해봅시다. 1. &는 주소를 참조하는 연산자 우선, &에 대해 약간의 설명을 해드리겠습니다.&는 엠퍼센트라고 읽습니다.and를 대신하는 타이포그래픽 부호라고는 하는데,보통 c언어에서는 주소연산자라고 기억하시면 됩니다. &를 사용하면 메모리 공간의 주소를 표현할 수 있는데요.다음 표를 봐주세요. 변수의 주소 참조 배열의 주소 참조 사용법 &변수 이름 &배열 요소 ex) int a=10;printf("%x \n", &a) // a의 주소 int array[2]={10,2}printf("%x \n", &array[0]); // array[0]의 주소printf("%x \n", &array[1]);.. 더보기
[C언어] 배열 선언 시 주의할 점 [C언어] 배열 선언 시 주의할 점 안녕하세요 . 지토우에요. 주말에는 포스팅하기가 어려워서 자꾸 1일 1 포스팅의 약속을 지키지 못하게 되네요... 예약을 걸어서라도 약속을 지키도록 하겠습니다 ㅠ ㅠ 어쨌든, 오늘은 배열 선언 시에 주의할 점에 대해서 알려드릴게요. 1. 배열 요소는 0부터 시작 다음 코드에서 int array[2]는 배열 요소를 총 2개 선언하고 있습니다. 그런데 array[2]=3은 배열의 세 번째 요소에서 데이터 3을 저장하라는 의미로 에러가 발생합니다. 왜냐하면, 배열의 요소는 0부터 시작하기 때문이죠! array[0], array[1]은 존재하지만 array[2]는 존재하지 않습니다. 2. 배열 초기화를 중괄호로 할 때 배열의 선언과 초기화가 개별적으로 이뤄어지면 안됨 다음 코.. 더보기
[C언어] 배열에 데이터 저장하기 [C언어] 배열에 데이터 저장하기 안녕하세요 지토우에요. 지난 시간에 이어 배열의 두번째 시간인데요! 배열에 데이터 저장하는 법을 배워봅시다. 1. 배열에 데이터 저장하기 배열을 선언하고 나면 비로소 배열에 데이터를 저장할 수 있습니다. 4번째 행에서 배열을 선언했습니다. 이후 6,7,8 행에서 배열의 첫번째 두번째 세번째 요소에 각각 데이터를 저장했고요. 10,11,12 행에서는 각각 100,90,80가 출력될겁니다. 그런데 13행에서는 어떻게 될까요? 결과를 알기 위해 컨트롤+F5 를 해서 빌드해줍니다. 띠용~ 디버그 에러라고 뜨네요. 이유는 초기화되지 않은 'score' 지역 변수를 사용했기 때문입니다. 여기서 무시를 눌러주면, 값이 나오긴 하지만 네번째 점수는 쓰레기값이 나오는군요. 배열에 데이터.. 더보기
[C언어] 1차원 배열 (1) 1차원 배열 (1) 안녕하세요 지토우에요.자료구조 공부하기 전에,먼저 배열에 대해 더 알아보면 좋을 것 같아서씨언어 메뉴도 만들고 새로 글도 썼습니다 ㅎㅎ오늘도 행복한 하루 되세요 ^^ 1. 1차원 배열이란 배열의 간단한 특징들은 다음과 같습니다. * 같은 자료형을 가진 연속된 메모리 공간으로 이루어진 자료구조* 같은 자료형을 가진 변수들이 여러 개 필요할 때 사용* 많은 양의 데이터를 처리할 때 유용 이렇게 활자로만 보면 사실 감이 잘 안오실겁니다.예시를 들어볼게요. name이라는 이름을 가진 변수를 선언해야 한다고 합시다.배열을 모른다는 가정하에, 우리는 다음과 같이 선언하게 됩니다. name1, name2, ... , name10 이런 식으로 하나하나 변수를 언제 다 선언하는 것은 번거로운 일이지요.. 더보기