*함수 원형
- 함수 원형(function prototyping) : 컴파일러에게 함수에 대하여 미리 정보를 알리는 것
- 함수 원형의 형식 ↓
반환형 함수이름 (매개 변수1 , 매개 변수2 ,~~~~);
Ex) int get_integer(void);
int combination(int n ,int r);
#라이브러리 함수
- 라이브러리 함수(library function) : 컴파일러에게 제공하는 함수
- 표준 입출력
- 수학 연산
- 문자열 처리
- 시간 처리
- 오류 처리
- 데이터 검색과 정렬
#난수 함수 라이브러리
- 난수(random number)는 규칙성이 없이 임의로 생성되는 수이다.
- 난수는 암호학이나 시뮬레이션 , 게임 등에서 필수적이다.
#rand() : 난수를 생성하는 함수
0부터 RAND_MAX 까지의 난수를 생성
헤더파일 : <stdlib.h> 기본 사용 : rand();
- 범위를 지정하여 임의의 값을 생성하는 경우 : rand() % 갯수 + 시작 수;
#srand()함수
- rand()함수의 초기값을 설정하는 함수
- srand(초기값);
- 매번 난수를 다르게 생성하려면 시드(seed)를 다르게 하여야 한다.
srand((unsigned)time(NULL));
#time()함수
- 1970년 1월1일 0시0분0초부터 현재까지의 시간을 초단위로 제공한다.
- time(NULL)
- 헤더파일: time.h
- rand()함수의 값이 일정하지 않도록 time()을 이용하여 초기화
- srand(time(NULL))
#Sleep()함수
- 밀리언 초(1/1000)단위로 프로그램의 실행지연
- Sleep(밀리언초); /* S는 무조건 대문자 */
system()함수
- 콘솔창에서 사용할 수 있는 명령어를 실행시키는 함수
사용형식
system("명령어 입력");
**화면을 깨끗이 지우는 명령
system("cls");
**화면을 잠깐 멈추는 명령
system("pause");
**지금위치의 폴더들을 확인명령
system("dir");
#rand()함수를 이용하여 로또 6개 숫자 뽑아보기
#로또 프로그램 중복 x
#변수의 속성
- 이름 , 타입 , 크기 , 값 , + 범위 , 생존시간 , 연결
- 범위(scope) : 변수가 사용 가능한 범위 , 가시성
- 생존시간(lifetime) : 메모리에 존재하는 시간
- 연결(linkage) : 다른 영역에 있는 변수와의 연결 상태
#변수의 종류
- 지역 변수 : 함수 내에서 선언된 변수
선언된 영역이 다르면 동일한 변수명을 사용할 수 있다.
해당 지역을 빠져나가면 지역변수는 소멸된다.
호출할때마다 새롭게 할당된다.
#지역변수 예제
- 전역 변수 : 함수 밖에서 선언된 변수
프로그램이 시작하고 끝날때까지 메모리공간이 남아있는다.
자동적으로 0으로 초기화 된다.
main함수든 내가 만든 함수 안에서 자유롭게 접근이 가능하다.
#전역 변수 예제
#문자열 처리 라이브러리
#문자열 길이 (strlen)
- strlen("Hello") 는 5를 반환한다.
#문자열 복사 (strcpy)
- char dst[6];
- char src[6] ="Hello";
- strcpy(dst,src)
#문자열 연결 (strcat)
- char dst[12] = "Hello";
- char src[6] = "World";
- strcat(dst,src);
#배열 초기화 방법
- 1. 배열선언과 동시에 초기화
- 2. scanf()입력
- 3. strcpy() 초기화
#문자열 비교
#if문으로 문자열 비교
#strcmp로 문자열 비교
#수학 라이브러리 함수
- 헤더파일은 #include <math.h> 사용
#간단한 자동차 게임 만들어보기
알고리즘 : 난수 발생기를 초기화 한다.
for( i = 0 ; i < 주행시간 ; i++)
난수를 발생하여 자동차1의 주행거리에 누적한다.
난수를 발생하여 자동차2의 주행거리에 누적한다.
disp_car()를 호출하여 자동차1을 화면에 *표로 그린다.
disp_car()를 호출하여 자동차2를 화면에 *표로 그린다.
#로그인 프로그램 만들어보기
#가위바위보 프로그램 만들어보기
#숫자 맞추는 프로그램
'C언어 > C언어' 카테고리의 다른 글
C언어 [구조체,구조체 배열,구조체 함수,구조체 포인터] (1) | 2017.11.08 |
---|---|
C언어 [포인터,포인터 배열,포인터 함수] (0) | 2017.11.04 |
C언어 [배열,함수] (0) | 2017.10.28 |
C언어 [반복문 while , do~while , for] (0) | 2017.10.24 |
C언어 [형변환,조건문 if문,switch문] (0) | 2017.10.22 |