C语言/打印日历,用户输入年分和月份两个变量,系统计算该月份的1号是星期几,并计算该月有多少天。最后打印出该日历。已知:1900年1月1日是星期一
打印日历,用户输入年分和月份两个变量,系统计算该月份的1号是星期几,并计算该月有多少天。最后打印出该日历。已知:1900年1月1日是星期一
C语言
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>mon[2][13] = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };
//判断闰年
int isleap(int year)
{if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)return 1;elsereturn 0;
}
//年份的第一天
int first_day_of_year(int year)
{int base_year = 1900; //定义一个基准年1900年int first_day = 1; //基准天:1999年1月1号是星期1int i = 1900;int total = 0; //天数总和for (i = base_year; i < year; i++){total = total + 365 + isleap(i); //isleap函数用于判断年份是否是闰年,如果是返回1,不是返回0}return (total+first_day)%7;
}
//月份第一天
int first_day_of_month(int year, int month, int first_year)
{int total = 0; //天数和int i = 0;for(i = 1; i < month; i++){total = total + mon[isleap(year)][i];}return (total + first_year) % 7;
}
//展示日历
void show(int year,int month, int first_month)
{int i = 0;printf("一\t二\t三\t四\t五\t六\t日\t\n");for (i = 0; i < first_month-1; i++){printf("\t"); //月份第一天是从first_month开始的,所以首先打印first_month-1个空格}for (i = 1; i <= mon[isleap(year)][month]; i++){printf("%-5d\t", i);if ((first_month-1+i) % 7 ==0) //如果(数字+空格数)%7==0,则换行printf("\n");}printf("\n");
}
int main()
{int year, month;printf("年/月:"); //输入你想打印的年份scanf("%d/%d", &year, &month);int first_year = first_day_of_year(year);//年份第一天int first_month = first_day_of_month(year, month, first_year);//月份第一天show(year, month, first_month);system("pause");return 0;
}
C语言/打印日历,用户输入年分和月份两个变量,系统计算该月份的1号是星期几,并计算该月有多少天。最后打印出该日历。已知:1900年1月1日是星期一相关推荐
- 用户输入行数和列数,之后在控制台打印出用户输入行数和列数的星星
要求:用户输入行数和列数,之后在控制台打印出用户输入行数和列数的星星 实现代码: <!DOCTYPE html> <html lang="en"><h ...
- C语言-如何将用户输入的金额数字转换成中文大写?
实战: 如何将用户输入的金额数字转换成中文大写? #include <stdio.h>int main() {// 输入金额转换成大写int money; // 输入数字int money ...
- 【C】已知1980年1月1日为星期二,求1980年1月1日之后任意一个日期是星期几。
#include <stdio.h> // 判断是否是闰年 int is_leap_year(int year) {return (year % 4 == 0 && yea ...
- 19001月1日是星期一c语言,已知道1900年1月1日是星期一,请输入一具体的日期,如何判断此日期是星期几?请利用C语言来进行编程...
这个是1984年1月1日是星期日的,你先看看,我再帮你改,最好自己能看懂 #include void main() { int year,month,day; int tempmonth,yearda ...
- c语言如何把变量按位颠倒,求答案,用C语言编程,用户输入一个正整数,把他的各位数字前后颠倒,并输入点到后的结果...
满意答案 q15173278975 推荐于 2017.11.26 采纳率:58% 等级:13 已帮助:5665人 用字符串处理很简单 #include #include void main () ...
- C语言数组 :用户输入一个数, 我要用这个数当数组的长度。怎么办呢
C语言不支持动态数组,也就是说,数组在定义时就要指定长度,把输入数作为它的长度那就说明定义时没有指定长度,这是不合法的. 使用 指针+动态分配malloc int* p;int n;scanf(&qu ...
- c语言编程题输入两个直角边,C语言编程 直角三角形已知两边求第三边
C语言编程题 求大神解答 好久没写C了,不知道对不对:intsum=0;intindex=0;for(;indexsum+=a[2][index];}returnsum; C语言编程题,求分段函数 刚 ...
- 输入年份和月份,打印出这个月有多少天
用户输入年份和月份,打印出这个月有多少天(★) 其中1,3,5,7,8,10,12月有31天 4,6,9,11月有30天 2月比较特殊,如果是平年就是28天,闰年就是29天(闰年判断条件 : 能被40 ...
- 用Go语言 判断用户输入的年份是不是闰年 (Golang经典编程案例)
判断一个年份是否是闰年,需要满足下面条件之一: 年份能被4整除,但不能被100整除: 能被400整除 下面用Go语言实现 判断用户输入的年份是不是闰年,代码如下: package mainimport ...
最新文章
- Centos Git1.7.1升级到Git2.2.1
- Weex快速上手教程(Weex Tutorial)
- python随机抽取样本1500个_(python)随机抽样
- 利用angular结合translate为项目实现国际化
- [Oracle PL/SQL]当数据表设计成具有父ID的时候,当需要选择所有与父ID同根生的所有节点的时候,使用的SQL语句...
- 微信小程序开发(二)
- Oracle触发器(trigger):一般用法
- C#线程使用(二)全面总结
- 【今日CV 视觉论文速览】14 Nov 2018
- Redis学习笔记三:Redis的数据类型
- Computer Science Theory for the Information Age-4: 一些机器学习算法的简介
- 图像上采样和图像下采样
- MT4指标安装方法,以MACD红绿柱黄白线双线macd为例
- python源代码怎么用_Python写完代码怎么用
- 「网络流 24 题」火星探险问题。
- 全国大学生GIS应用技能大赛(开发试题参考)
- k8s之四层负载均衡Service:概念、原理解读
- yapi 接口管理平台手册
- Steam账号注册--流程
- 笔记本ghostwin10系统后只有C盘了别的盘的数据怎样找到