'C언어' 태그의 글 목록
본문 바로가기
728x90

C언어25

C언어 - 포인터 활용, call by value, call by reference 간단하게 설명하면 call by value는 변수의 값을 부르는 것이고 call by reference는 변수의 참고(주소)를 부르는 것이다. 사실상 C언어에서는 call by reference 보다는 call by address라고 보는 게 맞다. 공식적으로 C언어에서 call by reference를 지원하지 않는다. call by address를 통해 call by reference와 같이 사용할 수 있다. Call by value 함수의 매개변수에 인수의 실제 값을 복사한다. 이경우 함수 안에서 매개변수끼리 값이 변하기 때문에 실제 인수 값에 영향이 가지 않는다. 즉 Call by value 함수 내에서만 값이 변경되고 실제 인수 값은 변함이 없게 된다. 실제 값을 변경할 필요가 없는 경우에 사용.. 2020. 10. 16.
CodeUp 1066[기초-조건/선택실행구조] 정수 3개 입력받아 짝/홀 출력하기(설명)-C/C++ #include int main() { int a,s,d; scanf("%d %d %d",&a,&s,&d); if(a%2==0){ printf("even\n"); }else printf("odd\n"); if(s%2==0){ printf("even\n"); }else printf("odd\n"); if(d%2==0){ printf("even\n"); }else printf("odd\n"); return 0; } 조건문을 활용하여 짝 홀을 출력하게 해준다. 2020. 8. 6.
CodeUp 1065 [기초-조건/선택실행구조] 정수 3개 입력받아 짝수만 출력하기(설명) -C/C++ #include int main() { int a,s,d; scanf("%d %d %d",&a,&s,&d); if(a%2==0){ printf("%d\n",a); } if(s%2==0){ printf("%d\n",s); } if(d%2==0){ printf("%d\n",d); } return 0; } 2020. 8. 5.
CodeUp 1064 [기초-삼항연산] 정수 3개 입력받아 가장 작은 수 출력하기(설명) -C/C++ #include int main() { int a,s,d; scanf("%d %d %d",&a,&s,&d); printf("%d",(a 2020. 8. 4.
CodeUp 1063 [기초-삼항연산] 두 정수 입력받아 큰 수 출력하기(설명) -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); printf("%d",a>d ? a:d); return 0; } 참고 3개의 요소로 이루어지는 3항(ternary) 연산자는 "조건식 ? (참일 때의 값) : (거짓일 때의 값)” 의 형태로 사용하는 연산자이다. 조건식의 계산 결과가 참인 경우에는 ':' 왼쪽의 값 또는 식으로 바뀌고, 짓인 경우에는 ':' 오른쪽의 값 또는 식으로 바뀐다. 2020. 8. 3.
CodeUp 1062 [기초-비트단위논리연산] 비트단위로 XOR 하여 출력하기(설명) -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); printf("%d",a^d); return 0; } 참고. 비트연산자 & 는 and 연산자 | 는 or 연산자 ~ 는 not 연산자 2020. 8. 2.
CodeUp 1061 [기초-비트단위논리연산] 비트단위로 OR 하여 출력하기(설명) -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); printf("%d",a|d); return 0; } 참고. 비트연산자 & 는 and 연산자 | 는 or 연산자 ~ 는 not 연산자 2020. 8. 1.
CodeUp 1060 [기초-비트단위논리연산] 비트단위로 AND 하여 출력하기(설명) -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); printf("%d",a&d); return 0; } 비트연산자 & 는 and 연산자 | 는 or 연산자 ~ 는 not 연산자 2020. 7. 30.
CodeUp 1059 [기초-비트단위논리연산] 비트단위로 NOT 하여 출력하기(설명) -C/C++ #include int main() { int a=1; scanf("%d",&a); printf("%d", ~a); return 0; } 2020. 7. 29.
CodeUp 1058 [기초-논리연산] 둘 다 거짓일 경우만 참 출력하기 -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); if(!a&&!d) printf("1"); else printf("0"); return 0; } >,=, 2020. 7. 28.
CodeUp 1057 [기초-논리연산] 참/거짓이 서로 같을 때에만 참 출력하기 -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); if((a&&d)||(!a&&!d)==1) printf("1"); else printf("0"); return 0; } >,=, 2020. 7. 27.
CodeUp 1056 [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기(설명) -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); if((a&&!d)||(!a&&d)==1) printf("1"); else printf("0"); return 0; } 참고. 논리연산자 ! 부정형 && 논리 and || 논리 or 2020. 7. 26.
CodeUp 1055 [기초-논리연산] 하나라도 참이면 참 출력하기(설명) -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); if(a||d==1) printf("1"); else printf("0"); return 0; } 참고. 논리연산자 ! 부정형 && 논리 and || 논리 or 2020. 7. 25.
CodeUp 1054 [기초-논리연산] 둘 다 참일 경우만 참 출력하기(설명) -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); if(a&&d == 1) printf("1"); else printf("0"); return 0; } 참고. 논리연산자 ! 부정형 && 논리 and || 논리 or 2020. 7. 24.
CodeUp 1053 [기초-논리연산] 참 거짓 바꾸기(설명) -C/C++ #include int main() { int a,d; scanf("%d",&a); if(a==false) printf("1"); else printf("0"); return 0; } 2020. 7. 23.
CodeUp 1052 [기초-비교연산] 두 정수 입력받아 비교하기4(설명) -C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); if(a!=d) printf("1"); else printf("0"); return 0; } 2020. 7. 22.
CodeUp 1051 [기초-비교연산] 두 정수 입력받아 비교하기3(설명) - C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); if(d>=a) printf("1"); else printf("0"); return 0; } 2020. 7. 21.
CodeUp 1050 [기초-비교연산] 두 정수 입력받아 비교하기2(설명) - C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); if(a==d) printf("1"); else printf("0"); return 0; } 2020. 7. 20.
CodeUp 1049 [기초-비교연산] 두 정수 입력받아 비교하기1(설명) - C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); if(a>d) printf("1"); else printf("0"); return 0; } 2020. 7. 19.
CodeUp 1048 [기초-비트시프트연산] 한 번에 2의 거듭제곱 배로 출력하기(설명) - C/C++ #include int main() { int a,d; scanf("%d %d",&a,&d); printf("%d", a 2020. 7. 18.
CodeUp 1047 [기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기(설명) - C/C++ #include int main() { int a; scanf("%d",&a); printf("%d", a 2020. 7. 17.
C언어 - 조합 알고리즘 [nCr] 경우의 수 순열을 프로그래밍화 (나열, 카운팅) 조합이란? - 서로 다른 n개에서 순서를 고려하지 않고 r개를 선택하는 방법의 수 구현 방향 - n의 원소의 갯수가 늘어날 수록 for문의 중첩이 계속 늘어나야 한다. - for문으로 구현할 경우 중첩이 많아질경우 효율이 떨어지고 n과 r의 값이 변할때마다 코드를 수정해줘야한다. - 재귀함수를 사용해서 문제를 풀어보도록 하자. 코드 #include int arr[] = {1,2,3,4,5}; //전역 변수로 선언 int Copy[5]; //arr배열을 복사하기 위한 배열 void print_Comb(int count); void Combination(int n,int r,int c); void print_Comb(int count){ for(int i=0;i 2020. 7. 10.
C언어 - malloc, free, sizeof 를 이용한 동적 할당 메모리를 할당할 때 malloc, calloc, realio 함수를 사용하여 메모리를 동적 할당한다. 동적 할당하는 이유는 메모리를 효율적으로 사용하기 위함이고 C언어 경우 메모리를 자동으로 관리를 해주지 않기 때문에 직접 관리해 메모리 누수를 예방 그리고 이미 할당된 메모리라도 언제든지 크기 조정할 수 있다. 하지만, 해제하지 않으면 누수가 발생하므로 꼭 명시적으로 메모리를 해제해야 한다. malloc 함수 ( memory allocate - 메모리 할당 함수) - 함수의 원형 //라이브러리 헤더파일 void *malloc (size_t size) //size_t 는 부호 없는 정수 //size 바이트의 메모리를 힙에서 할당하여 반환 int *i = (int*) malloc (sizeof(int)); .. 2020. 6. 26.
CodeUp 1001 - C/C++ 보면 따로 입력값은 없고 출력만 하면된다. 입력값은 나중에 어떻게 할지도 잘 생각해야한다. #include int main() { printf("Hello"); return 0; } 2020. 6. 1.
CodeUp 기초 100제 - C 알고리즘 입문으로 좋을거같아 CodeUp으로 시작해볼까 합니다. 진도 확인도 직관적이여서 좋아보입니다. 하루 5문제씩 풀면 적당할 거 같네요. 초반에만 가능할 것 같지만.. 그래도 하루 5개 도전해봅시다. 2020. 6. 1.
728x90