[C语言练习]万年历加强版

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

/**

 * @copyright 2011 Chunhui Wang

 *

 * [email protected]

*/

#include<stdio.h>

int main()

{

    printf("\t\t\t万年历\n");

    printf("\t\t\t\t------Made by Chunhui Wang\n\n");

    int
i,year, month;

    int
day;//记录每月第一天是周几。

    int
date;//每年星期变化,平年加1,闰年加2。

    int
a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//月份天数 。

    int
Year[10000];//每年第一天周几。

    Year[1900]=1;

    for(i=1900;i<9999;i++)

    {

        date=1;

        if((i%4==0)&&(i%100!=0)||(i%400==0))

        {

            date=2;

        }

        Year[i+1]=(Year[i]+date)%7;

    }

        

    while(1)

    {

        printf("请输入年份(如1900):");

        scanf("%d",&year);

        printf("请输入月份(如  01):");

        scanf("%d",&month);

        

        

        a[2]=28;

        if(((year%4==0)&&(year%100!=0)||(year%400==0))&&(month>=2))

        {

            a[2]=29;

        }

        

        day=Year[year];

        for(i=1;i<month;i++)

        {

            day=day+a[i];

        }

        day=day%7;

        

        

        printf("\t\t\t\t%d年%d月份\n\n",year,month);

        printf("\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日\n");

        for(i=0;i<day;i++)

        {

            printf("\t");

        }

        if(day==0)printf("\t\t\t\t\t\t\t");

        for(i=0;i<a[month];i++)

        {

            printf("%d\t",i+1);

            if((i+day)%7==0)

            {

                printf("\n\t");

            }

        }

        printf("\n\n\n\n");

        

    }

    

    return
0;

}

  

[C语言练习]万年历加强版,布布扣,bubuko.com

时间: 2024-10-11 03:52:44

[C语言练习]万年历加强版的相关文章

C语言可以开发哪些项目?(转)

原文地址:https://www.cnblogs.com/shiyanlou/p/6098661.html 知乎:https://www.zhihu.com/question/20564904 C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中--,这些迷茫也导致了我们在学习的过程中不知道如何学.学什么,所以,总结这个列表,希望对C语言初学者可以有所帮助~ C语言可以做什么? 从最简单

学会了C语言可以开发出很多东西吗?

C语言相比其他高级语言,就像内功和剑法一样.只会C语言可能并不能写出一个看起来就很厉害的程序,但C语言是你学好其他一切语言的基础.有了C语言的底子,再学别的语言就很容易上手了. 你能想到的,C语言都能搞,可以说是无所不能,把C学好,上手其他语言也会事半功倍.只看教程不动手永远学不会,推荐10个C的入门小项目,由易到难,开始动手做一些常见的小东西吧. 1C/C++ - C语言制作简单计算器 用C语言做一个简单的计算器,进行加.减.乘.除操作.项目涉及的所有数学知识都很简单,但输入过程会增加复杂性.

使用 Roslyn 编译器服务

.NET Core和 .NET 4.6中 的C# 6/7 中的编译器Roslyn 一个重要的特性就是"Compiler as a Service",简单的讲,就是就是将编译器开放为一种可在代码中调用的服务, 通常在工作流引擎 或是规则引擎中都需要一项功能是计算表达式, 在没有Roslyn 之前我通常借助于Antlr [Antlr(“又一个语言识别工具”的缩写)是一个最初用Java编写的库,可以根据特殊的语法(文法)来构建复杂的解析器代码.它就像是一个用于语言解析的加强版的正则表达式.你

万年历算法的实现(C语言--gcc编译)

/** cal.c * * 现行的格里历是从儒略历演化而来的.儒略历每4年一个润年,润年366天,平年365天.* 如果从公元1年算的话,那么凡是能够被4整除的都是润年.从天文角度看,儒略历这种 * 历法是有误差的,到16世纪误差已经达到了10天.1582年,罗马教皇对儒略历进行了 * 一次校定,该年的10-5到10-14这10天被抹掉,并规定凡不能被400整除的世纪年不再 * 算为润年,校定之后的儒略历即为现行的格里历. * * 但是英国直到1752年才开始使用格里历,此时时间误差已经达到了1

用一门非常小众的语言REBOL写日历(万年历)打印的程序

先上效果图由于课程设置,选修了一门非常非常小众的REBOL语言的程序设计概论,就自己观点来看,这门语言小众,语法晦涩,教材也不太好,书中作者试图一直把我们以门外汉这样灌输知识给我们,我觉得这点作者做的不是特别好,比如说流行语言中的变量,用书中作者的话就变成了单字...赋值就是设字...这看来非常的不专业,而且某种程度上貌似在拐弯,这是我对这本教材不能接受的地方.当然,对于初学者来说,这无可厚非.欸,怪我怪我,来了这么渣的专业,全机电学大物3,就我们班学大物2(2比3难),你说一堆搞机器人的学的比

【C语言】第一个C语言小程序 —— 日期算法和万年历

1. 写了个万年历的功能练练手.还没有写交互的代码,只是把方法写完了.先给出头部和方法签名 #include<stdio.h> #define DAYS_PER_WEEK 7 #define MONTHS 12 #define DATE_HEADER " Sun Mon Tues Wed Thur Fri Sat" int get_days(int, int, int); //返回从公元元年算起,某年某月某日是第几天, 用这个数字算星期几 int days_of_year(

初识C语言控制台版万年历

任务:使用C完成控制台版万年历 从控制台输入年份和月份,然后显示该月日历. 使用分支和循环结构完成. 提示: 1.1900年1月1日是星期一 2.计算输入的月份的1月1日距离1900年1月1日有多少天 3.输入月份的1月1日是星期几 = 得到的总天数 % 7 4.然后根据下图可以看出,该月的1号是星期几,我们在控制台上,就需要在前面打印几个\t控制符,比如2016年10月1日是星期六,那么前面我们就需要六个\t来制造空格空出来. 具体的实现步骤如下: 1.接收控制台输入的年份和月份 2 . 计算

C语言 万年历程序

原代码: [email protected]:~/c++$ cat 123.c  #include<stdio.h>   #define Mon   1 #define Tues  2 #define Wed   3 #define Thur  4 #define Fri   5 #define Sat   6 #define Sun   0   #define January_days   31 #define February_days   28 #define March_days   

万年历(C语言版)

#include <stdio.h> //判断输入的年份是否是闰年 int IsLeap(int year) { if((year%400==0) || ((year%4==0)&&(year%100!=0))) return 1; else return 0; } int Day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //计算一个月的最大天数(上一个月) int Max_day(int year,int month) { if(