打印年历到文件中c语言

用c语言编程:打印年历

没想到这个程序会做这么长,要不得多要点分。

#include stdio.h

void main()

{

int i,j,k,year,week;

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

char month[12][10]={“January”,”February”,”March”,”April”,”May”,”June”,”July”,”August”,”September”,”October”,”November”,”December”};

printf(“Input year you want to print:”);

scanf(“%d”,year);

if((year%4==0year%100!=0)||(year%400==0)) day[1]++;

week=(35+year+year/4-year/100+year/400)%7; //计算当年的1月1日是周几的公式

for(i=0;i12;i++)

{

printf(“\n%s\n”,month[i]);

printf(“Sun Mon Tue Wed Thu Fri Sat\n”);

for(k=0;kweek;k++) printf(” “);

for(j=1;j=day[i];j++)

{

printf(“%3d “,j);

if(++week=7)

{

printf(“\n”);

week=week%7;

}

}

printf(“\n”);

}

}

打印年历到文件中c语言

c语言编程:打印年历

#include stdio.h

void main()

{

int i,j,k,year,week;

int day[]=;

char month[12][10]=;

printf(“Input year you want to print:”);

scanf(“%d”,year);

if((year%4==0year%100!=0)||(year%400==0)) day[1]++; //判断是否闰年

week=(35+year+year/4-year/100+year/400)%7; //计算当年的1月1日是周几的公式

for(i=0;i12;i++)

{

printf(“\n%s\n”,month[i]); //输出月份的英文

printf(“Sun Mon Tue Wed Thu Fri Sat\n”); //输出表头

for(k=0;kweek;k++) printf(” “); //每月一号对齐它的星期数

for(j=1;j=day[i];j++)

{

printf(“%3d “,j);

if(++week=7)

{

printf(“\n”);

week=week%7;

}

}

printf(“\n”);

}

}

输入一个年份,打印该年的年历,用C语言编写,老师布置的作业。

//—————————————–

//前端时间看到的一断代码看到不错就留下来了,不知道作者是谁,看到勿怪

#includestdio.h

long int f(int year,int month)

{//f(年,月)=年-月,如月3;否则,f(年,月)=年

if (month 3)

return year-1;

else

return year;

}

long int g(int month)

{//g( 月)=月+13,如月3;否则,g(月)=月+1

if(month3)

return month + 13;

else

return month + 1;

}

long int n(int year,int month,int day)

{

return 1461L*f(year,month)/4+153L*g(month)/5+day;

}

int w(int year,int month,int day)

{

return(int) ((n(year,month,day)%7-621049L%7+7)%7);

}

int date[12][6][7];

int day_tbl[][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};

int main()

{

int sw,leap,i,j,k,wd,day;

int year;

char title[]=”SUN MON TUE WED THU FRI SAT”;

printf(“Please input the yewr whose calendar you want to know:”);

scanf(“%d%*c”,year);

sw=w(year,1,1);

leap=year%4==0year%100||year%400==0;//判断闰年

for(i=0;i12;i++)

for (j=0;j6;j++)

for(k=0;k7;k++)

date[i][j][k]=0;//将日期表置0

for(i=0;i12;i++)//一年12个月

for(wd=0,day=1;day=day_tbl[leap][i];day++)

{//将i+1月的日期填入日期表

date[i][wd][sw]=day;

sw=++sw%7;//每星期7天,以0~6计数

if (sw==0)

wd++;//日期表每七天一行,星期天开始新的一行

}

printf(“\n|====================The Calendar of Year %d====================|\n|”,year);

for(i=0;i6;i++)

{//先测算地i+1月和第i+7月的最大星期数

for(wd=0,k=0;k7;k++)//日期表的第六行有日期,则wd!=0;

wd+=date[i][5][k]+date[i+6][5][k];

wd=wd?6:5;

printf(“%2d %s %2d %s |\n|”,i+1,title,i+7,title);

for(j=0;jwd;j++)

{

printf(” “);

//左栏为i+1月,右栏为i+7月

for (k=0;k7;k++)

{

if(date[i][j][k])

printf(“%4d”,date[i][j][k]);

else

printf(” “);

}

printf(” “);

for(k=0;k7;k++)

{

if(date[i+6][j][k])

printf(“%4d”,date[i+6][j][k]);

else

printf(” “);

}

printf(” |\n|”);

}

}

puts(“=================================================================|”);

puts(“Please input any key to quit…”);

getchar();

return(0);

}

C语言编写打印万年历(呼唤高手)

你先按我的思路走一边 给你点启发

首先你要搞万年历

首先随便确定一个你知道的星期几的日子

对其年进行分析

比如 2007年5月1日 周二

那么 我们应该准备两套思路 一套思路是根据年份 算出今天是周几

其次 下一个思路 就是判断这一年的天数 这样我们暂且解决了年份造成的天数的不同

其次 就是具体的了 比如你需要考虑闰年 和月份的天数差别

这样你现在再去写写看

其实 写万年历 有点象根据今天 来去推算 某年某日某天是周几一样 呵呵 其实算法都是一样的

你尝试下用C++去写 更容易些 定义类 不至于那么麻烦

用 C写 主要反映下算法 你自己耐心点

应该没有什么问题

c语言打印万年历用数组

#include stdio.h

int main()

{

    int a, i, j, n, k, t, w, x, y, z;

    static int d[13][78];

    int m[14] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

    char wst[] = ” Sun Mon Yue Wed Thu Fri Sat   “;

    printf(“输入年份: “);

    scanf(“%d”, y);

 

    if (y % 4 == 0  y % 100 != 0 || y % 400 == 0)  /*闰年的二月为29天*/

        m[2] = 29;

    w = (y + (y – 1) / 4 – (y – 1) / 100 + (y – 1) / 400) % 7; /*计算y年元旦为星期w*/

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

    {

        a = 1;

        for (j = 1; j = 6; j++)

        {

            for (k = 0; k = 6; k++)

            {

                while (kw) k = k + 1;

                d[i][j * 10 + k] = a;  /*计算i月的第j个星期的星期w的日期为a*/

                a = a + 1;

                w = k + 1;

                if (w == 7) w = 0;

                if (am[i]) break;

            }

            if (am[i]) break;

        }

    }

    printf(“输入每行显示几个月份(1,2,3,4,5,6): “);

    scanf(“%d”, x);

    for (k = 1; k = 16 * x – 3; k++)

        printf(” “);

    printf(“=====%d=====\n”, y);   /*打印年号*/

    for (n = 1; n = 12 / x; n++)

    {

        t = x*(n – 1) + 1;

        printf(“\n    “);

        for (z = 1; z = x; z++)

        {

            for (k = 1; k = 15; k++)

                printf(” “);

            printf(“%2d”, t + z – 1);   /*打印月号*/

            for (k = 1; k = 14; k++)

                printf(” “);

        }

        printf(“\n      “);

        for (z = 1; z = x; z++)      /*按一横排x个月格式打印*/

            printf(“%s”, wst);   /*打印星期标题*/

        for (j = 1; j = 6; j++)

        {

            printf(“\n  “);

            for (i = t; i = t + x – 1; i++)

            {

                printf(”   “);

                for (k = 0; k = 6; k++)

                    if (d[i][j * 10 + k] == 0) /*空缺日期位置打印空格*/

                        printf(”    “);

                    else

                        printf(“%4d”, d[i][j * 10 + k]);/*打印日期*/

            }

        }

    }

     

    return 0;

}

输入示例:

2016按回车

2(或者输入1或3)按回车

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

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月26日 22:12:01
下一篇 2024年3月26日 22:18:11

相关推荐

  • c语言改写模式,c语言实现修改功能

    c语言程序修改? 1、这个程序有4个错误,我都加粗了,第一个是m没有赋初值,第二个是while表达式中的ch=getchar()需要括号括起来,第三个是m=m*10+ch-0中的0也需要用单引号括起来,第四个是第2个while中为m!=0。 2、define容易造成误会,因为不符合一般的编程习惯,false 0, true 1;scanf放在你的那个地方是达…

    2024年5月23日
    4100
  • c语言控制代码的换码序列,c语言交换代码

    求C语言编程大神解答一下下面这个编程代码? k==5,用5去除125余0,所以r=125%5中r为0。由于!0为1,所以执行while循环体:先打印出5(k的值),再n=n/k==125/5=25;由于251则再打印出*号。这一循环结果输出是5*。 下面是我的代码,三个函数分别对应三个问题。 在实现基本要求的前提下,拓展了可以从键盘输入的功能,以下为各题代码…

    2024年5月23日
    5800
  • linux给文件写权限,linux怎么给文件权限

    linux宝塔写入权限不足 1、可以使用chmod命令修改权限。语法:chmod [-cfvR] [–help] [–version] mode file…说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 2、通过更改文件权限可以使用c…

    2024年5月23日
    5200
  • c语言扫描io脚状态,c语言端口扫描

    求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。 上升沿触发是当信号有上升沿时的开关动作,当电位由低变高而触发输出变化的就叫上升沿触发。也就是当测到的信号电位是从低到高也就是上升时就触发,叫做上升沿触发。 单片机怎么计算1s内下降沿的个数的C语言程序或者计算两个下降沿的时间(检测脉冲频率)计算1s内下降沿的个数方法是,一个定时器设置定时1…

    2024年5月23日
    4500
  • c语言mallloc使用的简单介绍

    C语言中使用malloc必须加#includemallo.h? 1、在C语言中使用malloc函数进行动态内存分配。malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块。 2、你可以看一下C语言那本…

    2024年5月23日
    4500
  • c语言三位小数,C语言三位小数

    怎样用C++语言输出精确到小数点后三位的数? 1、用C++语言输出精确到小数点后三位的数,可以参考下面给出的代码:coutsetiosflags(ios:fixed)setprecision(3)。其中 setiosflags中set是设置的意思。ios是iostream的缩写,即输入输出流。flags是标志的意思。 2、要精确到小数点后若干位,则数据类型为…

    2024年5月23日
    7500
  • c语言21点游戏,二十一点游戏代码c语言

    如何使用C语言编写简单小游戏? 1、数学知识:长方形的面积S=a*b 长方形周长L=2*(a+b)其中a b分别为长方形的宽和高。算法分析:长方形面积及周长均依赖于宽和高,所以先要输入宽高值,然后根据公式计算,输出结果即可。 2、/*也不知道你是什么级别的,我是一个新手,刚接触编程语言,以下是我自己变得一个小程序,在所有c语言的编译器(vc++0、turbo…

    2024年5月23日
    6500
  • c语言当中的null,C语言当中的符号

    C/C++中,NULL和null的区别是什么? nul 和 null要看编译器,不同的编译器有所区别。 所以C或者C++中都使用一个特殊定义NULL表示无效值,其本质就是未定义具体数据类型的0值。 null是是什么都没有的意思。在java中表示空对象。 本意是“空的;元素只有零的”意思。计算机中通常表示空值,无结果,或是空集合。\x0d\x0a在ASCII码…

    2024年5月23日
    4600
  • 包含c语言对txt文件命名的词条

    如何在C语言编程里面修改源文件名字 如果你是在WINDOWS的话,简单了,随便用个编辑器,比如记事本,然后写c源程序,保存到你想要保存的位置。如果你在DOS下,可以用edit,写好以后,按alt键,选择文件菜单,然后保存。 用open打开文件,注意操作模式使用“修改”或者“添加” 用write或者fprintf向文件中写入你的内容。 用close关闭文件。 …

    2024年5月23日
    5000
  • 学c语言编程,学c语言编程用什么软件

    编程开发必须要学C语言吗? 1、要学习。编程开发的学习内容主要包括c语言、python和c+语言。C语言作为一种简单灵活的高级编程语言,它是一个面向过程的语言,一般是作为计算机专业的基础入门语言课程。 2、C语言。对于刚接触编程的人来说,先学习C语言是非常重要的。C语言可以说是是计算机编程语言的鼻祖,其他的编程语言几乎全是由C语言变化衍生出来的。 3、不需要…

    2024年5月23日
    3500

发表回复

登录后才能评论



关注微信