-
[SISS/C언어 멘토링] 25-1학기 6주차 멘토링 계획서25-1 SISS/C멘토링 2025. 5. 3. 17:00
[SISS/C언어 멘토링] 25-1학기 6주차 멘토링 계획서 기본 정보
- 멘토 - 김서영, 강민지 / 멘티 - 이다희
- 활동 예정일: 2025년 5월 5일
- 장소: 온라인
- 학습 자료: 프로그래밍개론 강의 자료 12(박영훈 교수님)
활동 계획
- 지난 주 내용 복습 및 과제 확인
- 포인터와 배열
- 포인터와 배열 예제 풀이
과제
- 안내
- 포인터와 배열을 사용하여 문제를 풀이하여주세요
1. 대표값(2592)
→ https://www.acmicpc.net/problem/2592
2. 음계(2920)
→ https://www.acmicpc.net/problem/2920
3. 피보나치 수(2747)
→ https://www.acmicpc.net/problem/2747
5주차 과제 해설
// 7568.c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> typedef struct { int weight; int height; int rank; } student; int main() { int i, j, n; student list[50]; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d %d", &list[i].weight, &list[i].height); list[i].rank = 1; // 초기 순위는 1 } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { if (list[i].height < list[j].height && list[i].weight < list[j].weight) { list[i].rank++; } } } for (i = 0; i < n; i++) { printf("%d ", list[i].rank); } return 0; }
// 25206.c #include <stdio.h> #include <string.h> typedef struct { char name[50]; float credit; char grade[3]; // "A+"처럼 2글자 + 널문자까지 고려해 크기를 3으로 수정 } student; float getGradePoint(const char *grade) { if (strcmp(grade, "A+") == 0) return 4.5; if (strcmp(grade, "A0") == 0) return 4.0; if (strcmp(grade, "B+") == 0) return 3.5; if (strcmp(grade, "B0") == 0) return 3.0; if (strcmp(grade, "C+") == 0) return 2.5; if (strcmp(grade, "C0") == 0) return 2.0; if (strcmp(grade, "D+") == 0) return 1.5; if (strcmp(grade, "D0") == 0) return 1.0; if (strcmp(grade, "F") == 0) return 0.0; return -1.0; // "P" 등의 등급 처리용 } int main() { student arr[20] = { 0 }; float sumFin = 0.0; float sumCredit = 0.0; for (int i = 0; i < 20; i++) { scanf("%s %f %s", arr[i].name, &arr[i].credit, arr[i].grade); float point = getGradePoint(arr[i].grade); // "P"는 평점 계산에서 제외 if (point >= 0.0) { sumFin += arr[i].credit * point; sumCredit += arr[i].credit; } } if (sumCredit > 0.0) printf("%.6f\n", sumFin / sumCredit); // 소수점 이하 6자리 출력 else printf("0.000000\n"); return 0; }
// 10814.c #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { int age; char name[101]; // 이름은 최대 100자까지 처리 int order; } Person; // 비교 함수: 나이순, 같으면 입력 순서(order)순 int compare(const void* a, const void* b) { Person* p1 = (Person*)a; Person* p2 = (Person*)b; if (p1->age == p2->age) return p1->order - p2->order; else return p1->age - p2->age; } int main() { int N; scanf("%d", &N); Person people[100000]; // 입력 최대값 가정 (필요시 동적 할당 가능) for (int i = 0; i < N; i++) { scanf("%d %s", &people[i].age, people[i].name); people[i].order = i; } qsort(people, N, sizeof(Person), compare); for (int i = 0; i < N; i++) { printf("%d %s\n", people[i].age, people[i].name); } return 0; }
'25-1 SISS > C멘토링' 카테고리의 다른 글
[SISS/C언어 멘토링] 25-1학기 7주차 과제 해설 (0) 2025.05.03 [SISS/C언어 멘토링] 25-1학기 7주차 멘토링 계획서 (0) 2025.05.03 [SISS/C언어 멘토링] 25-1학기 5주차 멘토링 계획서 (0) 2025.05.03 [SISS/C언어 멘토링] 25-1학기 4주차 멘토링 계획서 (0) 2025.04.03 [SISS/C언어 멘토링] 25-1학기 3주차 멘토링 계획서 (0) 2025.03.27