C 13

20200917 공부

아이템 확률 퀵정렬 문자열 링크드리스트 아이템 확률 아이템 확률대로 아이템을 뽑아보자 아이템, 빈도수 A, 20000 B, 1 C, 20000 D, 30000 A + B + C + D = 70001 1부터 70001 사이의 숫자를 랜덤하게 생성 if 숫자가 20000 보다 작으면 A아이템 else if 숫자가 20001 보다 작으면 B아이템 else if 숫자가 40001 보다 작으면 C아이템 else if 숫자가 70001 보다 작으면 D아이템 100만번 뽑아서 각각의 아이템이 나온 개수 출력 #include #include #include int items[] = { 20000, 1, 20000, 30000 }; int main() { srand(time(0)); int itemRange[4]; in..

공부 2020.09.18

20200916 공부

엔디언 함수포인터 switch case 구조체 패딩 엔디언 메모리 저장 방법 리틀엔디언 하위->상위 빅엔디언 상위->하위 함수포인터 함수포인터를 배열에 넣고 사용해보기 #include int sum(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } int mul(int a, int b) { return a * b; } int main() { int (*calcs[3])(int, int); calcs[0] = sum; calcs[1] = sub; calcs[2] = mul; int a = calcs[0](10, 20); int b = calcs[1](20, 10); int c = calcs[2](10, 2); return 0; ..

공부 2020.09.16

20200905 공부

소켓 옵션 코딩 연습 소켓 옵션 소켓 옵션 관련 함수 소켓 옵션을 설정할 때는 setsockopt() 함수를 사용 현재 설정된 소켓 옵션 값을 얻을 때는 getsockopt() 함수를 사용 setsockopt() 함수와 달리 getsockopt() 함수는 마지막 인자가 값-결과 인자임에 주의 SOL_SOCKET 레벨 소켓 옵션 optname optval 타입 get set 설명 SO_BROADCAST BOOL o o 브로드캐스팅 데이터 전송 허용 여부 SO_KEEPALIVE BOOL o o 주기적으로 연결 상태 확인 여부 SO_LINGER LINGER{ } o o 소켓 송신 버퍼에 미전송 데이터가 있을 때 closesocket( ) 함수의 리턴 지연 시간 설정 SO_SNDBUF SO_RCVBUF int ..

공부 2020.09.05

20200904 공부

1. 문제풀이 2. 스레드 동기화 3. UDP 서버 - 클라이언트 4. 브로드캐스팅 1. 문제풀이 1. DDB와 DIB의 차이에 대해 서술하시오. BMP파일은 어떤 쪽에 해당하며, 우리가 WinAPI를 통해 그림을 찍으려면 BMP파일을 어떻게 해야 되는지 DIB와 DDB관점에서 설명하시오. DDB (Device Dependent Bitmap) GDI에서 DC와 연결되는 Bitmap을 DDC라 한다 출력 장치에 종속적 이미지의 크기, 색상 등 기본적인 정보와 이미지 데이터로 구성 DIB (Device Independent Bitmap) 출력 장치에 독립적 DDB에 비해 색상 테이블, 해상도 정보 등의 추가 정보를 가지므로 장치에 종속되지 않음 BMP파일은 DIB에 해당한다 출력은 .. 다른점을 잘 모르겠다..

공부 2020.09.04

20200903 공부

1. 문제 만들기 2. 멀티스레드 1) 스레드 생성과 종료, 인자 전달 연습 2) 스레드 우선순위 변경 연습 3) 스레드 실행 제어와 종료 기다리기 연습 4) 멀티스레드 TCP 서버 1. 문제 만들기 1) x86 함수 호출 규약 (1), (2), (3) 에 해당하는 값을 채우시오. 규약 인자 전달 순서 인자 전달 매체 Stack을 정리하는 함수 cdecl ← Stack ( 2 ) stdcall ( 1 ) Stack ( 3 ) fastcall ← Register + Stack Callee 2) 함수 포인터 ( ? ) 부분을 채워서 코드를 완성하시오 int Sum(int a, int b) { return a + b; } int main() { ( ? ) int res = FuncSum(10, 20); ret..

공부 2020.09.03

20200902 공부

1. 데이터 전송하기 2 1) 가변 길이 데이터 전송 연습 2) 고정 길이 + 가변 길이 데이터 전송 연습 3) 데이터 전송 후 종료 연습 1. 데이터 전송하기 2 1) 가변 길이 데이터 전송 연습 클라이언트 코드 수정 // 가변 길이 데이터 전송 // EOR = '\n' const int bufSize = 50; char buf[bufSize]; const char* testData[] = { "안녕하세요", "반가워요", "오늘따라 할 이야기가 많을 것 같네요", "저도 그렇네요" }; for (int i = 0; i < 4; i++) { int len = strlen(testData[i]); strcpy_s(buf, bufSize, testData[i]); buf[len++] = '\n'; ret ..

공부 2020.09.02

정올 1828 냉장고

정올 문제풀이 1828 : 냉장고 문제 N개의 화학 물질 C1, C2, …, Cn이 있다. 이들 각각은 보관되어야 할 온도가 각기 다른데, 각 Ci마다 최저 보관 온도 xi와 최고 보관 온도 yi가 정해져 있다. 즉 Ci는 온도 xi이상, yi이하의 온도에서 보관되어야만 안전하다. 이 화학 물질들을 모두 보관하기 위해서는 여러 대의 냉장고가 필요한데 가능하면 적은 수의 냉장고를 사용하고 싶다. 이를 해결하는 프로그램을 작성하시오. 입력형식 첫줄에 화학물질의 수 N이 입력된다. N의 범위는 1이상 100 이하이다. 두 번째 줄부터 N+1줄까지 최저보관온도와 최고보관온도가 입력된다. 보관온도는 -270° ~ 10000°이며, 각 냉장고는 임의의 정해진 온도를 일정하게 유지할 수 있고, 냉장고는 아주 크다고 ..