본문 바로가기

반응형

SWEET NEW

(352)
[C언어] 실습: 함수를 호출하여 입력받은 숫자 세 개를 큰 순서대로 나열하기 함수를 호출하여 입력받은 숫자 세 개를 큰 순서대로 나열하기 #include void exchange(double*, double*); void sort_ck(double*, double*, double*); int main(){ double first, second, third; printf("첫 번째 수: "); scanf("%lf", &first); printf("두 번째 수: "); scanf("%lf", &second); printf("세 번째 수: "); scanf("%lf", &third); sort_ck(&first, &second, &third); printf("수 나열 : %lf >= %lf >= %lf\n", first, second, third); } void sort_ck(doub..
[Arduino] 적외선 센서 실습: 물체 감지 시 경고등 켜기 물체 감지 시 경고등 켜기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 적외선 센서 LED 저항 점퍼 케이블 (회로 연결) int infrared = 13; int led = 12; void setup() { pinMode(infrared, INPUT); pinMode(led, OUTPUT); Serial.begin(115200); } void loop() { int inf = !digitalRead(infrared); digitalWrite(led, inf); delay(500); }
[C언어] 포인터(Pointer) - 2 포인터는 변수의 이름에 직접 접근할 수 없을 때 사용한다. #include int test(int *x, int y); int main(){ int x = 10; // 지역변수 int y = 10; test(&x, y); printf("x = %d\n", x); // test() 함수에 주소값을 보냈기 때문에 x의 값은 변하게 된다. printf("y = %d\n", y); return 0; } int test(int *x, int y){ // int *x == &x *x = 20; // 역참조연산자: 지역이 다른 곳에 있는 변수 값을 제어한다. // 해당 변수의 주소를 추적하여 실제 값을 변경한다. y = 20; } 포인터 사용 시 주의할 점 1. 포인터는 초기화하고 사용하는 것이 안전하다. (실행 에..
[C언어] 역참조연산자(간접연산자, *) 역참조연산자: 지역이 다른 곳에 있는 변수의 값을 제어한다. 또한 해당 변수의 주소를 추적하여 실제 값을 변경할 수 있다. #include int main(){ int x = 10; int *p = &x; // p(포인터변수)는 x의 주소로 초기화 한다. printf("x = %d\n", x); printf("&x = %p\n", &x); printf("p = %p\n", p); // 참조연산자를 이용한다. printf("*p = %d\n", *p); // 포인터 p가 가리키고 있는 주소에 저장된 값이다. printf("&p = %p\n\n", &p); // 포인터 p가 저장되어 있는 주소값이다.(포인터도 변수이므로 주소를 가지고 있다.) *p = 20; printf("*p = %d\n", *p); pr..
[C언어] 포인터의 초기화 포인터의 초기화 - 포인터에 직접 주소를 대입해서는 안 된다. (메모리 주소를 직접 접근 시, 실행 에러가 발생할 수 있다.) - 변수의 주소를 구할 때 주소 연산자(&, 참조 연산자)를 사용한다. int a = 10; int *pa = &a; - 포인터 변수 초기화 int *p1 = 0; int *p2 = NULL; #include int main(){ //int *p1 = 0x12345678; // (오류) compile error int *p2 = (int*)0x12345678; // 실행 error가 발생할 수 있다. int a = 10; int *p3 = &a; int *p4 = 0; int *p5 = NULL; printf("p2 = %p\n", p2); // p2의 주소를 출력하기 위해 '%..
[C언어] 포인터의 크기 포인터의 크기는 포인터의 데이터형이 다르더라도 항상 같다. ※플랫폼에 따라 차이가 있다-4byte(32bit), 8byte(64bit) ​ #include int main(){ int *pi; double *pd; char *pc; printf("sizeof(pi) = %d\n", sizeof(pi)); printf("sizeof(pd) = %d\n", sizeof(pd)); printf("sizeof(pc) = %d\n\n", sizeof(pc)); printf("sizeof(int*) = %d\n", sizeof(int*)); // int형 포인터 변수의 크기를 출력한다. printf("sizeof(double*) = %d\n", sizeof(double*)); // double형 포인터 변수의 크기..
[C언어] 실습: 숙박 관리 프로그램 구현하기 숙박 관리 프로그램 구현하기 == Main Menu == 1. 숙박 2. 퇴실 3. 객실현황 4, 작업종료 ============= menu = 1 투숙할 호실 = 2 투숙객 이름 = aaa ​ menu = 2 퇴실할 호실 = 3 ​ menu = 3 0번방: kkk 1번방: 2번방: aaa 3번방: ccc 1. 일차열 배열을 선언하여 투숙객의 이름을 담는다. 2. 투숙할 호실은 배열의 인덱스를 활용한다. 3. 존재하지 않는 방에 투숙할 경우, 투숙할 호실을 다시 입력받는다. 4. 투숙할 방에 이미 고객이 있는 경우, "투숙객이 존재합니다."라는 메시지를 출력한다. #include #include #define SIZE 5 int main(){ int menu; char room[SIZE][10]; int..
[C언어] 실습: Magic Matrix (마방진) 게임 만들기 Magic Matrix (마방진) 게임 만들기 1. 숫자는 1부터 1씩 증가해서 채워진다. 2. 숫자 1의 위치 행 = 시작행, 열 = (int)(열 크기/2) 3. 다음 채워지는 숫자의 위치 다음행 = 현재행 - 1 다음열 = 현재열 +1 이때, 행이 처음 행일 경우 다음행은 마지막 행으로, 열이 마지막 열일 경우 다음열은 시작열로 지정한다. 4. 다음에 채워질 위치에 이미 숫자가 존재할 경우, 다음행 = 현재행 + 1 다음열 = 현재열 또는 5의 배수(5, 10, 15 ...) 다음 숫자의 위치는 다음행 = 현재행 + 1 다음열 = 현재열 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 #include #define SIZE 5 i..

반응형