Small Grey Outline Pointer soyoung-
본문 바로가기
포인터의 포인터/싱글포인터/더블포인터 포인터 변수에 대한 접근 #include void main() { int num = 3; int* ptr1 = # //num의 주소를 저장하는 포인터 변수 ptr1 int** dptr = &ptr1; //포인터변수 ptr1의 주솟값을 저장하는 더블포인터 int* ptr2; printf("%p %p\n", ptr1, dptr); printf("%d %d\n", num, **dptr); ptr2 = *dptr; //ptr1이 저장하고 있는 주소(*dptr)를 ptr2에 저장 *ptr2 = 9; printf("%d %d\n", num, **dptr); } 00000086EEAFF764 00000086EEAFF788 3 3 9 9 더블 포인터와 call by reference #include void s.. 2022. 4. 1.
c언어 난수 발생시키기/가위바위보/오름차순,내림차순 #include #include int ten(int ran) { //1~10까지 이므로 %10(나머지) return ran % 11; } void ex1() { int ranNum = rand(); int i; for (int i = 0; i < 5; i++) { printf("난수: %d, 10자리 난수: %d\n", ranNum,ten(ranNum)); ranNum = rand(); } } int main() { ex1(); } 난수: 41, 10자리 난수: 8 난수: 18467, 10자리 난수: 9 난수: 6334, 10자리 난수: 9 난수: 26500, 10자리 난수: 1 난수: 19169, 10자리 난수: 7 #include #include void main() { int ranNum = ra.. 2022. 4. 1.
함수 심화 문제 /배열을 전달 받는 함수/call by value / call by reference [01] 배열을 전달 받는 함수 예제 #include int arrinput(int *arr, int a) { for (int i = 0; i < a; i++) { printf("%d번째 값 입력: ", i + 1); scanf_s("%d", &arr[i]); } } int readArray(int* arr, int length) { printf("배열의 요소 읽어보기: [ "); for (int i = 0; i < length; i++) { printf("%d", arr[i]); if (i + 1 < length) { printf(", "); } else { printf(" "); } } printf("]\n"); } int main() { int arr[3]; arrinput(arr, 3); read.. 2022. 3. 30.
함수의 이해 응용문제 #include int input(int seq) { int a; printf("%d번째 값을 입력해 주세요: ", seq); scanf_s("%d", &a); return a; } void sum(int a1, int a2) { printf("%d+%d=%d\n", a1, a2, a1+a2); } void sub(int a1, int a2) { printf("%d-%d=%d\n", a1, a2, a1 - a2); } void mul(int a1, int a2) { printf("%d*%d=%d\n", a1, a2, a1 * a2); } void div(int a1, int a2) { printf("%d/%d=%d\n", a1, a2, a1 / a2); } void ex1() { int x1 = inpu.. 2022. 3. 28.
함수의 이해 기본예제/함수정의와 호출/지역변수 전역변수 함수 정의하고, 호출하기 main함수 안에 최대한 간략하게 짜는 것이 이번 목표 [01] #include #include int a, b; int result; int getBigger(void) { printf("입력해주세요: "); scanf_s("%d %d", &a, &b); printf("%d %d\n", a, b); if (a > b) { return a; } else if (a b) { retu.. 2022. 3. 28.
함수값 반환하기 문제 #include //2개의 매개변수를 받아, 두개의 합을 반환 int plus(int a, int b) { return a + b; } void main() { int sum = plus(3, 5); //함수를 호출하면, 값으로 치환 되어 plus(3, 5)=8 의 값으로 처리 printf("%d", sum); } //결과 8 [01] #include //전역변수 int itemCnt = 0; int money = 100; void buyItem() { //아이템을 산다 itemCnt++; money -= 10; printf("아이템을 구매했습니다.\n"); printf("아이템 개수: %d\n", itemCnt); printf("잔액: %d\n", money); } void main() { buyIte.. 2022. 3. 27.
배열과 포인터 종합문제 #include //100개 이하의 정수 입력 받아 첫 줄에 짝수번째 숫자 순서대로 출력 //다음줄에 홀수번째 숫자들 순서대로 출력하기 void main() { int num; int arr[105]; scanf_s("%d", &num); for (int i = 0; i < num; i++) { scanf_s("%d", &arr[i]); } for (int i = 1; i < num; i+=2) { //짝수 출력하기 { printf("%d ", arr[i]); } } printf("\n"); for (int i = 0; i < num; i+=2) { //홀수 출력하기 { printf("%d ", arr[i]); } } printf("\n"); } 5 2 4 1 3 5 #include void main().. 2022. 3. 27.
포인터 배열과 배열 포인터 포인터 배열과 배열 포인터 포인터 "배열" -정수형 배열: 정수형 변수들을 묶어놓은 묶음 -실수형 배열: 실수형 변수들을 묶어놓은 묶음 배열 "포인터" -정수형 포인터: 정수형 변수의 주소를 저장하는 포인터 -실수형 포인터: 실수형 변수의 주소를 저장하는 포인터 자료형*포인터 배열명[크기]; int * score[3]; 자료형(*배열포인터명)[크기]; int (*score)[3]; #include void main() { int a = 10, b = 20, c = 30; int* ar[3]; ar[0] = &a; ar[1] = &b; ar[2] = &c; for (int i = 0; i < 3; i++) { printf("ar[%d]: %d\n", i, *ar[i]); } *ar[0] = 100; pri.. 2022. 3. 27.
포인터와 함수의 관계/call by value/call by reference #include void main() { int x = 10 , y = 20; printf("x: %d, y:%d\n", x, y); x = y; y = x; printf("x: %d, y:%d\n", x, y); //이렇게 하면 내가 원하는 값의 교환이 이뤄지지 않는다, x값이 덮어 씌워 지기 때문 } x: 10, y:20 x: 20, y:20 #include void main() { int x = 10 , y = 20; int temp; printf("x: %d, y:%d\n", x, y); temp = x; x = y; y = temp; printf("x: %d, y:%d\n", x, y); } x: 10, y:20 x: 20, y:10 #include void swap(int, int); void.. 2022. 3. 27.
baekjoon c++ 2839 설탕배달/ 그리디 알고리즘 3과 5로 나누어질 때만 잘 출력됐고 3kg, 5kg 봉지를 같이 사용해야 할 때는 출력이 안되서 계속 막혔다 구글링해서 다시 풀어봤다 맨처음에 풀었던 방식 #include void main() { int N; int a, b=0; int sum = 0; int cnt3; int cnt5; scanf_s("%d", &N); while (1) { if (N % 3 == 0 || N % 5 == 0) { if (N % 3 == 0) { cnt3 = N / 3; printf("%d\n", cnt3); break; } else if (N % 5 == 0) { cnt5 = N / 5; printf("%d\n", cnt5); break; } } else { N = a + b; cnt3 = N / 3; cnt5 = .. 2022. 3. 26.