2024/11 45

25206번

조건 : 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다a. 아는값 : 학점, 모르는값 : 과목평점b. 과목평점은 등급으로 구할 수 있음 > strcmp    1. 과목 학점 등급 > for문으로 각각 받음2. strcmp(같으면 0 , 사전식 앞뒤 +,-) : 등급이 a+, a,, 이면 평점4.5, 4.0 리턴// 함수선언 double 3. 토탈 점수 += 학점 * 평점4. 토탈 학점 > 나눔 // return 0.0; P or F 과목 #include #include double get_grade_point(char grade[]) { if (strcmp(grade, "A+") == 0) return 4.5; if (strcmp(grade, "A0") == 0..

C언어/백준 2024.11.13

2941번 , 1316번

2941번1.한 문자씩 비교해서 맞는지 확인2. count ++3. if) 두글자, 세글자 이면 그게 한글자로 되므로       배열 i 를 ++, i= i+2 // i+=2 해주기 13161. 알파벳 배열과 이전 배열을 0으로 초기화2. 입력 문자가 이전 문자와 같지 않고 +3. 이미 나온 문자면 함수 종료 (return 0;) 4. 아니라면 알파벳 배열에 1로 초기화하고5. 이전문자가 아니면 현재 문자 저장 // char prev_char = '\0'; // == 0 배열 초기화방법// for 문안에 scanf 랑 그룹배열인지 확인하는 함수를 같이 둔다면 한 단어씩 끊을 수 있음// scanf : 입력할때마다 이전 단어가 아닌 새로운 단어로 덮어쓰여짐// alphabet[word[i] - 'a']  ..

C언어/백준 2024.11.13

10988번, 1157번

10988앞뒤가 똑같다. > 절반만 비교하면 됨홀수 : level > 시작 le , 끝 le만 비교하면됨짝수 : abba : 시작 ab , 끝 ab 만 비교하면됨>> strlen() / 2>> 끝: word[len - i - 1] ( 배열은 0부터 시작) // 정수 나누기에서 소수점은 버려짐, 5/2 = 2.5 > 2// 배열은 null 이 없음//  %s : 배열을 문자열로 취급함 > 자동으로 \0 (null) 추가 11571. 알파벳은 총 26개 > 배열 > 입력될때마다 ++ 1-2. 입력은 문자 , 배열은 숫자 >  freq[in_char - 'a']2. 배열이 max 보다 크면 max로 지정3. max 와 같다면 대문자로 지정  // 출력조건 >  result = i + 'A'; , result ..

C언어/백준 2024.11.13

변수, 대입, 초기화

C program : a collection of functions 함수 1. 프로그래머가 작성2. c언어 제공되는 ( 라이브러리 함수) 수학에서의 함수: 값을 계산하는 규칙 : 하나 또는 그이상의 인수를 받았을때C에서의 함수 : 명령어들을 그룹화 하고, 이름을 부여함> 어떤 함수는 계산을 하지만 , 아닌것도 있음계산하는 함수:  return 을 사용 > 반환값 지정                      ex) return y*y - x*x ; main 함수프로그램 실행시 자동으로 호출됨 ( 컴파일러) > 호출 할 필요, 헤더파일도 필요없음int main() { return 0;} return 01. 메인함수 종료 > 프로그램 종료2. 0을 반환 세미클론 ' ; ':컴파일러에게 statement의 ..

C언어/C - knk 2024.11.12

정리 - 2 -

swap 함수swap ( *a, *b); a,b 를 바꿈: 구현은 내가 해야함 putchar 함수단일 문자를 출력기본형 : int putchar(int char); 반환 int , 출력: 아스키값> 문자putchar(65); == putchar('A'); 포인터 후위연산char str[100]="hello world\n"; char *pstr = str;//pstr = str 의 시작 주소 ( ex) 0x12)//pstr++ = pstr의 다음 주소(0x13 // char형 이므로 1 byte)putchar(*pstr++) : 문자 출력후 ++putchar (*(pstr++)) ++ 한걸 출력 while문에 () 조건이 문자로 오면 아스키값으로 0인지 1인지 확인 2진수,16진수 &a=0x7ffee12a..

C언어 2024.11.11

11718번

1. 100 줄을 출력 해야함 > 반복문 사용2. fgets 로 받음 > 줄바꿈까지 받아버림 + 받아올 문자열 없으면 NULL 반환3. strcspn(line , " \n" ) : 문자열에서 그 문자의 배열 숫자 반환 > 그 값을 \0 으로 만듬// 입력조건 :  알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다4. isspace() : 공백 제거 // 공백이면 true5. strlen(line) - 1 :// arr[5] = "hello";  //  마지막 arr[4] = 'o'; , arr[5] = '\0'; // strlen(arr) = 5  >> 마지막 끝문자 확인하려면 > strlen(arr) -1   #include #include #include ..

C언어/백준 2024.11.10

5622

1. int arr[3] = {3,5,6};   sizeof (arr) = 12 // 4 + 4 + 42. eng[i] == one[i]  i 가  배열 범위 초과시 문제생김 > 문자열에서 strchr() ' 문자' , strstr() ' 문자열'3. 문자열길이 : strlen4. 배열초기화 : str[] = {};, str[] = {0};5. 배열 과 문자열 문자열: \0 으로 끝나는 문자 배열 char you[] = " happy";     // 자동으로 끝에 \0 이 추가됨 char you[] = { 'h','a'.'p','p','y'); // 배열 이므로 %s 로 출력하면(문자열) 제대로 안나옴> char you[] = { 'h','a'.'p','p','y','\0'); // 문자열>> strle..

C언어/백준 2024.11.09

1장 . 역사,장단점,난해한 C (8퀸문제),,

1UNIX (운영체제) : Assembly - B - NB > C(언어) " portability "  C로 UNIX 재구성 >  C89 or C90 > C 99 C기반 언어      C++ : C + classes, 객체지향( oop)     java : C++ 기반     C#  : Cpp + java     perl : 간단 > C특징 C로 배워야하는 이유1. C의 근본적인 특징 파악 > 다른 C 기반 통찰 가능2. C가 오래돼서 자료들이 많음3. 소프트웨어 개발에 많이사용4. C 의 단순성 > 메모리,처리능력 한정 될때 유용 > 임베디드 장점1. 효율성 : 제한된 메모리2.이식성 : 컴퓨터의 기반 > 대부분 C3. 강력함 : 짧더라도4. 융통성 : 형변환,, 버그 조심5. Standard libr..

C언어/C - knk 2024.11.09

채팅프로그램 이론

프로토콜 ( 통신 규약) : 통신할때 하나하나 의미들, 약속ex) 랜선 ( 랜선도 약속: 8개 선으로 a로는 뭘하고 b로는 뭘하고,,) 1. TCP 통신a가 b로 패킷 하나 날림 > 그걸 잘 받았는지 또 패킷 > 확인 받는 절차 : 복잡, 안전성 있음 (ex) 파일 다운 2. UDP 통신 패킷 빠르게 날리기만함 > 확인 절차 없음 (ex) 게임, 실시간 스트리밍3. 소켓 ex) 충전 타입(c ,8 , 5핀) ,돼지코, 220v  > 이런것도 다 통신 규약 여러가지 hw 들이 하나의 구멍(충전기 꼽는 그 두개 구멍)으로 통신 할 수 있도록 해주는것 소켓단 2가지1. 서버 : 서비스 제공   : 소켓을 열고 리슨 하고 있는 상태2. 클라이언트 : 서비스를 받아감 : 소켓을 열고 ip 서버주소 로 connec..

카테고리 없음 2024.11.08

파일 입출력, 표준입출력

언제 사용?1. 컴파일러 만들때2. 그림 파일 저장 해석자료는 DB로 저장, SQL 사용3. 옵션 지정 할때컴파일 따로 안하고 옵션에 따라 실행되도록 >> 실제에선 사실 라이브러리 가져다씀 하드웨어마다 데이터 저장 방법은 다 다름 ( ssd, hdd, 플로피디스크 flash memory,,,,) 임베디드 > 데이터시트를 다 읽어봐야함 한번에 얼마나 저장, 몇번 기록, 통신방식, 패킷 그래야 1byte 를 저장할 수 있음 >> 계층(단계) 을 나눔 hw driver 운영체제> read write open  >함수를 쓰면 운영체제에서 누군가 만든 driver 구현한거를 이용해서 hw에 접근 스트림write : hdd에 기록 > 때때마다 하면 굉장히 비효율적,, (ex) hdd가 한공간에 8byte > w..

카테고리 없음 2024.11.08