본문 바로가기

C_study

(24)
[C] 프로그래머스 위클리 챌린지 2주차 - 상호 평가 학생들이 서로를 평가한 점수를 바탕으로 평균을 내어 학점을 매기고, 학점을 return 하는 문제입니다. #include #include #include #include // scores_rows는 2차원 배열 scores의 행 길이, scores_cols는 2차원 배열 scores의 열 길이입니다. char* solution(int** scores, size_t scores_rows, size_t scores_cols) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. char* answer = (char*)malloc(scores_rows + 1); memset(answer, 0, sizeof(answer)); for (int i = 0; i..
[C] 코딩도장 73 : 배열 정렬하기 73.6 심사문제: 거품 정렬 구현하기 #define _CRT_SECURE_NO_WARNINGS #include int bubble_sort(int Arr[], int count) { int temp; for(int i = 0 ; i < count; i++) // 모든 요소 개수만큼 반복합니다. { for (int j = 0; j < count - 1; j++) // 한개의 요소를 배열 끝까지 비교하면서 정렬해줍니다. { if (Arr[j] < Arr[j + 1]) { temp = Arr[j]; Arr[j] = Arr[j + 1]; Arr[j + 1] = temp; } } } } int main() { int numArr[10]; scanf("%d %d %d %d %d %d %d %d %d %d", &n..
[C] 프로그래머스 월간 코드 챌린지 시즌 2 - 약수의 개수와 덧셈 주어진 두 수 left와 right 사이의 수 중 약수가 짝수인 수는 더하고, 홀수인 수는 빼서 return 하는 문제입니다. #include #include #include int solution(int left, int right) { int answer = 0; for(;left
[C] 프로그래머스 월간 코드 챌린지 시즌 1 - 내적 각각의 배열에 저장되어있는 요소들을 인덱스가 같은것끼리 곱해서 더하는 문제입니다. #include #include #include // a_len은 배열 a의 길이입니다. // b_len은 배열 b의 길이입니다. int solution(int a[], size_t a_len, int b[], size_t b_len) { int answer = 0; for(int i = 0 ; i < a_len ; i++) { answer += a[i]*b[i]; } return answer; } for문을 사용해 배열 요소의 개수만큼 반복해서 곱해주면서 answer에 더해주었습니다. ​ ​ 출처: 프로그래머스 코딩 테스트 연습, 코딩테스트 연습 - 내적 | 프로그래머스 (programmers.co.kr)
[C] 코딩도장 72 : 파일에서 구조체를 읽고 쓰기 72.6 심사문제: 파일에서 구조체 쓰기 #define _CRT_SECURE_NO_WARNINGS #include #include #pragma pack(push, 1) struct X820Firmware { int serial; char desc[13]; short tag; char mode; }; #pragma pack(pop) int main() { struct X820Firmware x1; memset(&x1, 0, sizeof(x1)); FILE *fp = stdout; x1.serial = 1800891002; strcpy(x1.desc, "X820 Firmware"); x1.tag = 8512; x1.mode = '-'; fwrite(&x1, sizeof(x1), 1, stdout); fcl..
[C] 코딩도장 71 : 파일에서 문자열을 읽고 쓰기 71.9 심사문제: 파일 크기만큼 파일 읽기 #define _CRT_SECURE_NO_WARNINGS #include #include #include int getFileSize(FILE *fp) { int size; int currPos = ftell(fp); fseek(fp, 0, SEEK_END); size = ftell(fp); fseek(fp, currPos, SEEK_SET); return size; } char *getData(int offset, int size, int *count, FILE *fp) { char* buffer = malloc(size+1); // 문자열은 끝에 NULL값이 들어가야하므로 문자열의 크기보다 +1 해줍니다 memset(buffer, 0, size+1); fs..
[C] 코딩도장 70 : 파일에서 문자열을 읽고 쓰기 70.8 심사문제: 서식을 지정하여 파일에 문자열 쓰기 #define _CRT_SECURE_NO_WARNINGS #include int main() { char name[31]; int order; scanf("%s %d", name, &order); FILE *fp = stdout; fprintf(stdout, "The %dth Satellite of Jupiter: %s", order, name); // 포인터와 서식을 넣고 서식에 들어갈 변수를 넣어줍니다 fclose(fp); return 0; } 70.9 심사문제: 파일에서 문자열 읽기 #define _CRT_SECURE_NO_WARNINGS #include #include #include int main() { char *buffer = mall..
[C] 코딩도장 69 : 함수 포인터 사용하기 69.8 심사문제: 인적 정보 출력하기 #define _CRT_SECURE_NO_WARNINGS #include struct Person { char name[30]; int age; void (*print)(struct Person *); }; void print(struct Person *p) { printf("%s %d\n", p->name, p->age); } void executer(void (*fp[])(struct Person *), struct Person p[], int count) { for (int i = 0; i < count; i++) { fp[i](&p[i]); } } void (*getPrintFunc(struct Person *p))(struct Person *) { retu..