c语言日历库

用c语言编写万年历,要求输出任意一年的某月,能显示出这个月的日历

1、首先要判断一个年份是闰年还是平年,用一个子程序来做。

2、然后就开始芹雀写主程序,首先用scanf得到一个年份。

3、在判断这个年份是平年还是闰年后用printf在CMD中打印出来。

4、在编差亏写完成后,在Notepad++界面下按下F5,弹出输入框。

5、cmd /k gcc -o “$(CURRENT_DIRECTORY)\$(NAME_PART).exe””$(FULL_CURRENT_PATH)” CLS “$(CURRENT_DIRECTORY)\$(NAME_PART).exe” PAUSE EXIT。在嫌庆早输入框例输入后运行。

6、点击运行,会弹出CMD,在里面输入年份后回车就完成了。

c语言日历库

用c语言编译万年历

//我写的代码,我自己改吧。当年水平有限,忘了考虑闰年,楼主莫怪

没有纯c环境,不知道还有没有错

#include stdio.h

#include time.h

int days[]={0,31,59,90,120,151,181,212,243,273,304,334,365};

int month[]={31,28,31,30,31,30,31,31,30,31,30,31};

char weekday[7][7]={“一”,”二”,”三”,”四”,”五”,”六”,”七”};

char weeks[][10]={“Sunday”,”Monday”,”Tuesday”,”Wednesday”,”Thursday”,”Friday”,”行销碧Saturday”};

//判闰年

inline int leap(int year)

{

return (year%4==0year%100!=0)||year%400==0;

}

//判合法性

inline int legal(int y,int m,int d){

if(m0||m12)

return 0;

if(m==2)

return d0 d=28+leap(y);

return d0 d=month[m-1];

}

int week(int y,int m,int d)

{

int day = days[m-1]+d-1+(m2?leap(y):0);

return (y-1+(y-1)/4-(y-1)/100+(y-1)/400+day)%7;

}

void print()

{

puts(“1.Week(查询某天是星期几)”);

puts(“2.Month(打印某月日历)”);

puts(“3.Calendar(打印某斗则年日历)”);

puts(“4.Exit(退出)”);

}

void printmonth(int y,int m)

{

int i,j,w;

w=(week(y,m,1)+1)%7;

puts(” SUN MON TUE WED THU FRI SAT”);

for(i=1;i=w;i++)

printf(“%5c”,’ ‘);

for(j=i;ji+month[m-1]+(m==2leap(y));j++)

{

printf(“%5d”,j-i+1);

if(j%7==0)

puts(“”);

}

if((j-1)%7)

puts(“”);

}

int main()

{

int i,y,m,d,c;

char op[5],s[105];

time_t current = time(NULL);

tm *date = localtime(current);

print();

while(scanf(“%d”,c)==1)

{

if(c==1)

{

strftime(s,100,”%Y %m %d”,date);

do

{

printf(“请输入年月日(例如:%s)\n”,s);

scanf(“%d%d%d”,y,m,d);

printf(“%4.4d年%2.2d月%2.2d日是星期%s,是否继续查询(Y/N)?\n”,y,m,d,weekday[week(y,m,d)]);

scanf(“%s”,op);

}while(op[0]==’Y’||op[0]==’y’);

}

if(c==2)

{

strftime(s,100,”%Y %m”,date);

do

{

printf(“请输入要打印的月份(例如:%s)\n”,s);

scanf(“%d%d”,y,m);

printf(” %4.4d年%2.2d月\n”,y,m);

printmonth(y,m);

puts(“是否继续打印(Y/N)?”);

scanf(“%s”,op);

}while(op[0]==’Y’||op[0]==’y’);

}

if(c==3)

{

strftime(s,100,”%Y”,date);

do

{

printf(“请输入要打印的年份(例如:%s)\n”,s);

scanf(“%d”,y);

printf(” %4.4d\n”,y);

for(i=1;i=12;i++)

{

printf(” %2.2d月\n”,i);

printmonth(y,i);

}

puts(“是否继续打印(Y/N)?”);

scanf(“%s”,op);

}while(op[0]==’Y’||op[0]==’y’);

}

if(c==4)

{

puts(“是否要真的退档举出(Y/N)?”);

scanf(“%s”,op);

if(op[0]==’Y’||op[0]==’y’)

return 0;

}

print();

}

}

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月22日 15:05:44
下一篇 2024年3月22日 15:11:51

相关推荐

  • 一个简单的c语言软件哪个好,新手c语言软件

    初学编程(C语言)用什么软件最好? 1、学c语言可以用的软件推荐如下:TurboC是由美国Borland公司开发的一套C语言程序开发工具,Borland公司是一家专门从事软件开发、研制的大公司。 2、可以编写c语言的软件有:Vim、C++编译器、Dev-C++、Code:Blocks、Visual Studio等。Vim Vim是一个类似于Vi的著名的功能强…

    2024年5月19日
    5900
  • c语言打印月份,c语言输入月份输出英文

    c语言读入一个年份和月份,打印出该月有多少天(考虑闰年) 1、printf(请输入年份与月份:\n);scanf(%d%d,&year,&month);if (year%4==0&&year%100!=0||year%400==0) day[1]++;//判断是否为闰年,是则给原2月天数加一天。 2、打开visual C语言编…

    2024年5月19日
    3700
  • c语言定义数组时,c语言定义数组时会分配空间吗

    在C语言如何在定义数组时给数组赋值? 定义数组;2 给定初始化值;3 打印初始化值;4 循环输入,并赋值给数组;5 输出赋值后的数组。 c语言不允许在定义的时候直接用变量赋值。但用v[0]=x,v[1]=y…这样的方法是可以的。至于数组长度,C语言不支持动态定义大小,如int n=5;int a[n];这样也是错的。所以数组一般要定义成足够大。 …

    2024年5月19日
    3800
  • 包含externalc语言的词条

    C语言问题,求救! 1、p1是字符指针,1个字符占1字节,加5是加上5个字符所占的长度5字节;p2是长整数指针,1个长整数占4字节,加5实际是加上4×5=20字节。 2、你用的都是宏定义,宏定义编译的时候替换的。具体到你这个问题,PRINT1(FUDGE(5)*x);是这样替换的,FUDGE(5)*x这个整体作为参数宏定义里的参数a,这里面还有一个…

    2024年5月19日
    4300
  • 计算器c语言程序代码,计算器编程代码c 语言

    计算器的C语言代码.就进行简单的加减乘除的运算,可以循环的,谢谢大神了… 1、e=a*b; f=a/b; printf(a-b=%f\n,c); printf(a+b=%f\n,d); printf(a*b=%f\n,e); printf(a/b=%f\n,f);}。这样一个简单的C语言的加减乘除算是写好了,运行看看。 2、用C语言编写可以进行加…

    2024年5月19日
    3500
  • 包含c语言dsf理解的词条

    C语言字符串的问题~急等~! 该代码使用了STL中的vector、map等容器以及C++11中引入的random库,实现了任意关键词随机替换颜表情的功能。 字符串初始化,如果逐个赋值的话,系统不一定会自动添加\0,除非指定了长度且指定的长度大于等于你赋值的字符的个数加1,即最小为你赋值的字符个数加1。 这个手写的题目的末尾应该是少了一个双引号。掌握的原则是如…

    2024年5月19日
    3200
  • 面试c语言冒泡排序,c语言实现冒泡排序

    c语言三种排序 冒泡排序(最常用)冒泡排序是最简单的排序方法:原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。 有插入排序:直接插入排序、折半插入排序、希尔排序;交换排序:冒泡排序、快速排序;选择排序:简单选择排序、堆排序;归并排序;基数排序。 稳定排序和非稳定排序简单地说就是所有相等的…

    2024年5月19日
    3800
  • c语言浮点数判断输入错误,c语言浮点数输入输出

    …中要怎么来判断整数和小数啊?比如说当在输入浮点型数据的时候我要… 1、包含类型方面的区别:整数类型包含byte型、int型、short型、long型, 浮点类型包含float(单精度)型、double常量 取值范围的区别:我们可以看到整数类型最大的取值是:1,844,674,407,370,955,161,共有19位数。 2、分析如…

    2024年5月19日
    3000
  • c语言输出第n小的质数,输出第n个数

    C语言编程:输出1到N中所有质数的个数 输出1-100以内的素数:同样,也是输出1-100以内的素数,这个构造一个数组,将其所有元素初始化为1,表示素数,这时取x从2开始,到100以内做循环。 可以定义一个函数用于判断一个数是否是素数,接着从10到100依次遍历,判断其是否是素数,如果是并输出。 C语言:输入一个正整数n,求第n小的质数。1、题目:将一个正整…

    2024年5月19日
    4500
  • 黑客最好学习什么语言编程,黑客该学什么语言

    做黑客必须具备的语言有哪些? 1、想成为黑客,需要首先熟练掌握一种或多种编程语言,如Python、Java等。其次,要了解计算机网络结构、协议和常见漏洞,熟悉常见的渗透测试工具和技术,如Metasploit、Nmap等。 2、UNIX/LINUX这种操作系统就是用C语言写的,是最强大的计算机语言,于上世纪70年由丹尼斯瑞切开发。想成为一名黑客,必须掌握C语言…

    2024年5月19日
    3800

发表回复

登录后才能评论



关注微信