본문 바로가기

반응형

C

(149)
[C언어] 실습: 입력받은 다섯 개 정수의 합 출력하기 입력받은 다섯 개 정수의 합 출력하기 (단, print_array()와 sum_array() 함수 활용) #include void print_array(int arr[], int size); void sum_array(int *arr, int size); int main(){ int num[5]; for(int i = 0; i < 5; i++){ printf("%d 번째 수 : ", i + 1); scanf("%d", &num[i]); } printf("\n"); print_array(num, sizeof(num)/sizeof(num[0])); // sizeof(num)/sizeof(num[0])으로 배열의 크기를 구해준다. sum_array(num, sizeof(num)/sizeof(num[0])); ..
[C언어] 실습: 함수를 이용하여 정수 두 개의 합과 곱을 계산하여 출력하는 프로그램 구현하기 함수를 이용하여 정수 두 개의 합과 곱을 계산하여 출력하는 프로그램 구현하기 #include void computer(int, int, int*, int*); int main(){ int x, y; int sum = 0, mul = 0; printf("두 개의 정수 입력[x, y] : "); // 두 개의 정수를 입력받는다. scanf("%d, %d", &x, &y); computer(x, y, &sum, &mul); // 합과 곱을 구하는 함수를 호출한다. printf("%d + %d = %d\n", x, y, sum); printf("%d x %d = %d\n", x, y, mul); return 0; } void computer(int num1, int num2, int *tot, int *mult..
[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..
[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..

반응형