小白求教C语言最简单题目
在国外,每月的13号和每周的星期五都是不吉利的,特别是当13号那天恰好是星期5时,更不吉利,已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字
[解决办法]
/* ============================================================================ Name : for_infinite.c Author : Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */#include <stdio.h>#include <stdlib.h>#include <stdbool.h>typedef enum{ MONDAY = 1, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY = 0}WeekDays;#define NOT_LEAP_YEAR_DAYS 365bool is_friday(WeekDays first_day);WeekDays get_first_day(int month, WeekDays day);void print_pagehost_bigaunt_days(WeekDays today){ // int bigaunt_month[13] = {0}; int month = 1; int i_index = 0; for(; month <= 12; ++month) { if(is_friday(today)) { bigaunt_month[i_index] = month; ++i_index; } today = get_first_day(month, today); } printf("page host big aunt month is:"); int i_loop = 0; for(; i_loop < sizeof(bigaunt_month)/sizeof(int); ++i_loop) { if(bigaunt_month[i_loop]) { printf("%d ", bigaunt_month[i_loop]); } } printf("\n");}//first_day该月1号为星期几bool is_friday(WeekDays first_day){ return ((first_day + 12) % 7) == FRIDAY;}//month月份 day当月一号为星期几 返回下月1号为星期几WeekDays get_first_day(int month, WeekDays day){ switch (month) { case 1: return (day + 31)%7; case 2: return (day + 29)%7; case 3: return (day + 31)%7; case 4: return (day + 30)%7; case 5: return (day + 31)%7; case 6: return (day + 30)%7; case 7: return (day + 31)%7; case 8: return (day + 31)%7; case 9: return (day + 30)%7; case 10: return (day + 31)%7; case 11: return (day + 30)%7; case 12: return (day + 31)%7; }}int main(int argc, char** argv){ print_pagehost_bigaunt_days(0);}