收藏必读:深度研究系统强化学习基础与实践:程序员入门指南
2026/1/16 17:42:49
把「输入→输出」的对应关系做成一张 “表”(数组 / 哈希表都行),不用写一堆条件判断,直接拿输入当索引去表里查结果
#include<stdio.h> #define MONTH_COUNT 12 #define GRADE_COUNT 11 int is_leap_year(int year); int get_days_in_month(int month, int year); char get_grade(int grade); int main(void){ int res_day = get_days_in_month(2, 2026); printf("%d\n", res_day); printf("99-------%c\n", get_grade(99)); return 0; } int is_leap_year(int year){ if(year < 0) return 0; return (year % 4 == 0 && year % 100 != 0)||(year % 400 == 0); } int get_days_in_month(int month, int year){ const int days_in_month[MONTH_COUNT] = { 31, is_leap_year(year)? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if(month < 1 || month > MONTH_COUNT){ return -1; } return days_in_month[month - 1]; } char get_grade(int grade){ const char grades[GRADE_COUNT] = {'F', 'F', 'F', 'F', 'F', 'F', 'D', 'C', 'B', 'A', 'A'}; if(grade < 0 || grade > 100){ return 'X'; } return grades[grade / 10]; }