본문 바로가기
반응형

프로그래밍./C언어.27

[C언어] main에서 입력받기. argc / argv / 간단예제 빼먹었던 소스 사진 첨부;; 모르고 있다가 이제야 발견; [C언어] main에서 입력받기. argc / argv / 간단예제 main에서 인자를 전달 받을 수 있다. (argc, argv) 보기만 해도 아는 사람이 있겠지만.. 간단하게 설명을 하자면 argc 는 int 로, 입력 받는 인자(문자열)의 개수 이다. 여기서 잠깐 착각 할 수 있는데. 실질적으로 내가 입력한 인자보다 1개가 더 나온다. 이유는 내가 실행시킨 파일명도 인자로써 전달되기 때문. argv는 문자열배열로 여러개의 문자들(문자열)을 배열로 저장한다. 문자열의 기준은 "공백" 또는 "엔터" 이다. argv에 0번째는 위에서 설명했듯이 파일명. argv에 1번째는 첫 번째 인자. argv에 2번째는 두 번째 인자. 이런식으로 입력된다. a.. 2011. 5. 23.
[C언어] 삽입정렬 간단예제. [C언어] 삽입정렬 간단예제. 삽입 정렬. selection 이라고도 하지만 일반적으로 그냥 삽입 정렬 이라고 한다. (5,6,4,3,1,6,2) 이렇게 존재 한다고 가정했을 때. 가장 작은 숫자를 찾는다. (1) 이를 첫번째 자리의 숫자과 교체한다. 일반적으로 교체하는 알고리즘(?)이 굉장히 많이 쓰이는데 잠깐 알아보도록 하자. 1. 임의의 변수를 하나 만들고 그 안에 교체될 대상의 값을 저장한다. [temp = 5] 2. 교체될 대상에 선택한 값을 덮어 씌운다. [5에 1을 덮어 쓴다.] 3. 그러면 5라는 값은 사라지고 1 이 2개가 되었을 것이다. (1,6,4,3,1,6,2) 4. 여기서 선택했던 1에 temp의 값을 덮어 씌운다.(대입) [1 = temp] 5. temp는 5가 들어 있었으므로 .. 2011. 5. 12.
[C언어] %연산자, Mod 연산자란? 간단 예제. [C언어] %연산자, Mod 연산자란? 간단 예제. 나머지 연산. 이라고 하며 % 또는 mod (모드) 연산자 라고도 한다. %연산자를 배우기 전에 꼭 알아야 하는 나누기의 주의사항을 알아보자. 프로그래밍에서 나누기를 하는 방법은 3가지가 있다. 언어마다 다르긴 하지만. 1. 나누어서 몫과 나머지를 구하는 방법. 2. 나누어서 몫만 구하는 방법. 3 .나누어서 나머지만 구하는 방법. 비쥬얼 베이직에서는 위 3가지 방법이 모두 존재 하는데. 다른 언어에서 몫만 구하는 연산자가 있는지 확실히 모르겠다. 물론, 일부러 정수로 나누어서 소수점을 떼어버릴 수도 있긴 하다. 일반적인 나누기에서도 주의할 점이 있다. 처음 접하거나, 오랜만에 접하는 사람들이 자주 범하는 실수로 대상 값을 정수로 나누는 것이다. 3/2.. 2011. 5. 11.
[C언어] 단순 정렬 / 오름차순 / 내림차순 간단 예제. [C언어] 단순 정렬 / 오름차순 / 내림차순 간단 예제. 가장 단순한 정렬로 교환법 이라는 방법이다. 첫번째를 기준으로 잡고. 그 다음으로 한칸씩 넘어가며 비교를 하되 기준이 되는 수 보다 크거나, 혹은 작거나 하면 값을 바꾼다. (오름차순, 내림차순에 따라 다름) 0번째 1번째 비교. 1번이 크면 값을 교체. 아니라면 0번째와 2번째를 비교. 2번이 크면 값을 교체. 아니라면 0번째...마지막을 비교. 이렇게 한번씩 비교가 끝나면 0번째에는 가작 큰 값이 자리하게 된다. 그리고 다시 1번째를 기준으로 위의 비교를 반복한다. 결과적으로 모든 정렬이 같지만, 비교하는 방식에 따라 종류가 나뉜다. 당연히 if 문에서 부등호의 방향에 따라 오름차순 내림차순으로 바뀐다. 만약, 위의 코드에서 랜덤수를 발생하는.. 2011. 5. 11.
[C언어] 버블소트 / 버블정렬 / 거품정렬 간단예제. [C언어] 버블소트 / 버블정렬 / 거품정렬 간단예제. 버블소트. 버블정렬. 거품정렬. 흔히들 이렇게 이야기 한다. 현재 기준 되는 배열과 바로 다음 배열의 값을 비교해서 정렬한다. 그리고 다음 배열과 그 다음 배열의 값을 비교해서 정렬. 0번째와 1번째를 비교하고, 1번째와 2번째를 비교하고, 2번째와 3번째를 비교하는 방식 비교를 해서 오른쪽에 큰 수를 놓는다. 이렇게 큰 수가 오른쪽 끝에 떠오른다 해서 거품 정렬이라 함. 계속 비교를 해서 큰 수를 오른 쪽에 놓으며. 오른쪽 제일 끝에 가장 큰 수가 자리하게 되면 그 다음엔 처음부터 다시 하되, 마지막에 놓인 가장 큰 수를 비교하지 않는다. 당연히 더 작을테니. 따라서 큰 수가 오른쪽부터 차례로 놓이게 되고, 비교하는 횟수도 점차 줄어들게 된다. 결.. 2011. 5. 11.
[C언어] 랜덤함수 사용법. rand(), srand() 간단예제. [C언어] 랜덤함수 사용법. rand(), srand() 간단예제. C언어에서는 랜덤수 발생을 위해서 rand()와 srand()를 주로 사용한다. 아직 학생이라 실무나 이런 부분에서 어떤지는 잘 모르겠지만. 사실 rand는 딱히 쓸모는 없을거 같다. 해본 사람은 알겠지만 rand의 경우 랜덤으로 발생하긴 하지만 실행시 매번 같다는 점이 문제다. 5개의 랜덤수를 발생했다. 종료 후 다시 실행하면 이전과 동일한 랜덤수가 발생한다. 랜덤수 발생의 기초가 되는 seed (씨앗)이 동일하기 때문이라고 한다. 이러한 문제점을 보안하는 방법으로 srand()가 있다. 일단 기본부터 하자. rand(), srand()는 stdlib.h 에 정의 되어 있으므로 #include 를 반드시 선언해 주어야 한다. 기본적으로.. 2011. 5. 11.
반응형