목록Programming/C (23)
밍키의 마법세상
1234567891011121314151617181920212223242526272829303132333435363738394041#include"stdio.h"#include"windows.h"int main() { int plat[100][100] = { 0, }; int n1, n2, l1, l2; scanf("%d %d", &n1, &n2); l1 = n1; //x좌표 l2 = n2; //y좌표 int a = 1, row = -1, col = 0, k = 1; //row : 세로줄 , col : 가로줄, k : 더하는값 while(l1 > 0 && l2 > 0) { for (int i = 0; i

함수를 정의하는 방법은 다음과 같이 반환값 자료형, 함수이름, () 순으로 적은 뒤 {} 안에 원하는 코드를 짜면 된다! c의 컴파일러는 위에서부터 아래로 소스코드를 해석하기 때문에 함수를 만들 때는 함수 선언을 해주어야 한다! 반환값자료형 함수이름(); 그렇다면 함수에서 값을 꺼내와보자! 반환값은 함수를 정의할 때 반환값의 자료형을 지정해주고 함수 안에서 return 키워드로 값을 반환해주면 된다! 한가지 조심해야 할점은 반환값과 반환값의 자료형이 일치해야 한다는 점이다. 즉 반환값의 자료형은 반환값의 형태와 크기에 따라 결정한다. 실수를 반환해 주는것도 쉽게 할수 있다! 만약 반환하는 자료형과 반환하는 값의 자료형이 다르다면 다음과 같이 자료형을 변환하면서 반환하면 된다! return (자료형)변수;..

C언어에서는 문자 자료형인 char는 있지만 문자열을 저장하는 자료형은 없다! 따라서 문자열은 포인터 형식으로 사용해야 한다! char *변수이름 = "문자열"; --> C++에서는 const char이라 해줘야한다! 이유는 맨 밑에서 설명하겠다! 문자열은 1바이트를 넘어가 문자열에 저장할 수 없기 때문에 포인터를 사용하여 저장한다. (%p로 메모리 주소를 출력할수도 있다) 문자는 변수안에 그대로 저장되지만 문자열은 변수안에 저장되지 않고, 메모리 주소만 저장된다. 또한 메모리 주소는 읽기 전용이므로 다른 문자열을 덮어쓸 수 없다. 여기서 한가지!! c언어의 문자열에 끝에는 항상 널 문자(null)가 붙는다! h e l l o Null(\0) 문자열 포인터에서 인덱스로 값을 가져올수도 있다! 위와같이 포..

흠.... 펙토리얼이 무엇일까? 펙토리얼은 어떤 수보다 작거나 같은 수들의 모든 곱이다! for문을 사용하여 계속 곱해주니 굉장히 간단하게 나왔다! 홀수는 더하고 짝수는 빼는 프로그램을 짜보자! for문과 if를 잘 스까주면 간단하게 나온다!

오늘은 2차원 배열에 대해 알아볼것이다! 2차원 배열은 이런 표라고 생각하면 편하다! [0] [0] [0] [1] [0] [2] [0] [3] [0] [4] [1] [0] [1] [1] [1] [2] [1] [3] [1] [4] [2] [0] [2] [1] [2] [2] [2] [3] [2] [4] 그럼 배열을 선언해보자! 자료형 배열이름[세로크기][가로크기]; 자료형 배열이름[세로크기][가로크기] = {{값,값,값},{값,값,값}}; 2차원 배열은 선언하면서 초기화하려면 {}로 가로 요소들을 먼저 묶어주고, 가로줄을 세로크기만큼 다시 묶어준다. 2차원 배열에 접근하려면 배열[세로인덱스][가로인덱스] 로 해준다. 2차원 배열에서도 첫번째 인덱스는 0이다! 또한 2차원 배열에서도 0으로 초기화 하는법은 i..

한번 30명의 성적 평균을 구해보자 흠..... 아무리 생각해도 이건 너무 귀찮다. 이런 상황에서 배열을 사용하면 아주 쉽게 해결이 가능하다. 배열은 같은 자료형의 변수를 일렬로 늘어놓은 형태이며 반복문과 합해지면 연속적인 값을 손쉽게 처리할 수 있다!! 자료형 배열이름[크기] 자료형 배열이름[크기] = {값, 값, 값}; 배열에 값이 저장된 공간을 요소(element)라 한다. 배열에서 각 요소에 접근하려면 배열에 []를 사용하여 인덱스를 지정해주면 된다. 배열[인덱스] - 한가지 조심해야 할점은 인덱스는 항상 0부터 시작한다! - 배열을 선언할때 요소가 0인 배열은 선언할 수 없다. - 배열을 선언할 때 값을 초기화 한다면 크기선언을 생략할 수 있다. 그러면 이제 배열을 0으로 초기화 해보자! 자료형..
kbhit : "keyboardhit"의 약자로입력을 받는동안 정지하는 scanf의 단점을 보완하기 위해 사용자로부터 키입력을 받았는지 받지 않았는지 검사하는 함수. 반환형 int 입력O (참) 1 입력X (거짓) 0 if (kbhit()) --> 키입력을 받을때마다 조건문이 실행된다 주로 getch와 함께 쓰는데 getch함수는 버퍼가 없어 코드가 정지하는 일이 없기 때문.
우리는 값을 지정할때 변수를 사용해왔다. 그렇다면 변수는 어디에 저장되는 것일까??--> 보통 변수는 메모리의 특정 장소에 있으므로 메모리 주소로도 표현할 수 있다.메모리주소는 컴퓨터마다, 실행될때마다 항상 바뀐다.시스템이 32비트인니 64비트인지에 따라 메모리 주소의 범위도 달라진다. 32비트: 16진수 8자리64비트: 16진수 16자리 포인터란?--> 어떤 값을 저장하는게 아닌 어떠한 값의 주소를 저장하는 것이다. 포인터를 쓰는 의미는? 1. 변수 지역성 보완 --> 함수간 변수 사용 2. 복사본을 만들지 않고 주소만 알려줌으로서 용량 및 처리시간에 이득을 볼 수 있다. 3. heap 영역을 참조하기 위해서.--> 동적할당으로 만든 변수를 보기 위해 포인터가 필요하다 4. 연속된 메모리 참조를 위해...