怎么用c语言编写万年历

编写一个万年历程序需要一些基本的C语言知识,包括数组、循环、条件语句等,以下是一个简单的万年历程序的编写步骤:,1、我们需要定义一个数组来存储每个月的天数,这是因为大多数年份都有31天,但二月有28或29天,闰年则有29天,我们可以使用一个数组来存储这些信息。,2、我们需要创建一个函数来计算给定日期是星期几,这可以通过计算给定日期与某个固定日期(例如1970年1月1日)之间的天数来实现,我们将这个天数除以7,余数就是星期几。,3、我们需要创建一个主函数,让用户输入年份和月份,然后显示该月的日历。,以下是一个简单的万年历程序的代码:,这个程序首先定义了一个数组来存储每个月的天数,然后定义了一个函数来判断是否是闰年,接着定义了一个函数来计算给定日期是星期几,最后在主函数中让用户输入年份和月份,然后显示该月的日历。,注意,这个程序只能显示一个月的日历,如果你想显示一年的日历,你需要修改主函数,让用户输入年份和月份的范围,然后分别显示每个月份的日历。,
,#include <stdio.h> // 定义每个月的天数 int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 判断是否是闰年 int isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } // 计算给定日期是星期几 int dayOfWeek(int year, int month, int day) { int daysOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if (isLeapYear(year)) { daysOfMonth[2] = 29; } int totalDays = day; for (int i = 1; i < month; i++) { totalDays += daysOfMonth[i]; } return (totalDays + 1) % 7; } // 显示日历 void printCalendar(int year, int month) { printf(“日t一t二t三t四t五t六 “); int startDay = dayOfWeek(year, month 1, 1); int daysInMonth = days[month 1]; for (int i = 0; i < startDay; i++) { printf(“t”); } for (int i = 1; i <= daysInMonth; i++) { printf(“%dt”, i); if ((i + startDay) % 7 == 0) { printf(” “); } } printf(” “); } int main() { int year, month; printf(“请输入年份和月份:”); scanf(“%d%d”, &year, &month); printCalendar(year, month); return 0; },

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《怎么用c语言编写万年历》
文章链接:https://zhuji.vsping.com/424789.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。