我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C语言打印某一年中某月的日历

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C语言打印某一年中某月的日历

在做学校作业发现的一道不错的练手题目,记录下来方便复习

大致思路:

  • ① 判断输入的年份是否闰年;
  • ② 计算输入月份的第一天是该年的第几天;
  • ③ 计算输入月份的第一天是星期几;
  • ④ 输出。

结合代码使用:


#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int arr1[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	int i = 0;
	int year = 0;
	int month = 0;
	int days = 0;
	int week = 0;//判断第一天周几
	scanf("%d%d", &year, &month);
	if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0))//判断是否是闰年
	{
	arr1[2] = 29;//闰年2月29天
    }
	for (i = 0; i < month; i++)
	{
		days += arr1[i];//计算该月第一天是该年多少天
	}
	days++;//该月第一天,还要把这一天算上
	//套用计算星期几的公式
	week = (year - 1 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400 + days) % 7;
	printf(" 日 一 二 三 四 五 六\n");//表头
	int arr2[50] = {0};
	for (i = 0; i < week; i++)
	{
		printf("   ");//整型数组不能存放空格,因此直接把空格打印出来
	}
	arr2[week] = 1;
	for (i = week + 1; i <= arr1[month]+week-1; i++)//把输入月份的每一天放到数组中
	{
		arr2[i] = arr2[i-1]+1;
	}
	int count = 0;//记录已打印几个数据,打印7个数据就换行
	i = week;
	int flag = 1;//用于记录是否为第一行,第一行不能用count计数方式换行
	while (i<=arr1[month]+week-1)//把该月所有天数都打印出来
	{
		if (flag <= 7-week)
		{
			printf("%3d", arr2[i]);
			if (flag == 7 - week)//打印够数据后换行
				printf("\n");
			flag++;
		}
		else
		{
			printf("%3d", arr2[i]);
			count++;
			if (count == 7)
			{
				count = 0;
				printf("\n");
			}
		}
		i++;
	}
	return 0;
}

实现结果:

以上所述是小编给大家介绍的C语言打印某一年中某月的日历,希望对大家有所帮助。在此也非常感谢大家对编程网网站的支持!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C语言打印某一年中某月的日历

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么用C语言打印某一年中某月的日历

这篇文章主要介绍“怎么用C语言打印某一年中某月的日历”,在日常操作中,相信很多人在怎么用C语言打印某一年中某月的日历问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C语言打印某一年中某月的日历”的疑惑有所
2023-06-21

C语言怎么打印输出某一年的日历

本篇内容主要讲解“C语言怎么打印输出某一年的日历”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么打印输出某一年的日历”吧!输入一个年份(1970以后的),以 2*6 的格式打印当年的日历
2023-06-08

c语言如何删除文件中的某一行

在C语言中,要删除文件中的某一行,可以实现以下步骤:1. 打开待操作的文件,使用`fopen()`函数打开文件,指定打开方式为读写模式("r+")。2. 创建一个临时文件,使用`fopen()`函数创建一个新的临时文件,并指定打开方式为写模
2023-08-08

c语言如何删除数组中的某一个元素

在c语言中,删除数组元素需要重新排列元素,将要删除的元素后面的元素前移一位。步骤包括确定元素位置、循环移动元素、更新数组长度。删除后的数组中,元素顺序会发生改变。C语言中删除数组元素在C语言中,数组元素是连续分配的内存块。因此,删除数组中
c语言如何删除数组中的某一个元素
2024-05-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录