c语言用while语句写月历程序大作业

合集下载

用C语言实现万年历

用C语言实现万年历

用C语言实现万年历——编程2008-05-23 23:22说明:本程序的日期输入格式为2005 09,中间为空格;若输入q。

则代表退出程序#include <stdio.h>int IsLeapYear(int); /*定义子函数*/main(){int i,day,year,temp,temp_i; /*定义变量*/long int Year_days=0;int Year_Start=1;int Per_Year_Days;int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29};/*定义月份*/printf("We know that 2000.01.01 is saturday!\n");printf("Please enter the year and month:"); /*提示信息*/while(1){scanf("%d %d",&year,&temp);if(getchar()=='q')exit(0);while(Year_Start < year){if(IsLeapYear(Year_Start)) /*调用IsLeapYear函数判断是否为闰年*/Per_Year_Days=366; /*闰年一年366天*/elsePer_Year_Days=365; /*平年一年365天*/Year_days=Year_days + Per_Year_Days;Year_Start++;}/*输出每个月的日历*/// for(temp=1;temp<=12;temp++){switch(temp){case 1:printf("January (%d) \n",year);break;case 2:printf("February (%d) \n",year);break;case 3:printf("March (%d) \n",year);break;case 4:printf("April (%d) \n",year);break;case 5:printf("May (%d) \n",year);break;case 6:printf("June (%d) \n",year);break;case 7:printf("July (%d) \n",year);break;case 8:printf("Auguest (%d) \n",year);break;case 9:printf("September (%d) \n",year);break;case 10:printf("October (%d) \n",year);break;case 11:printf("Novermber (%d) \n",year);break;case 12:printf("December (%d) \n",year);break;default:printf("error\n");}i=Year_days%7;printf("Mon Tue Wed Thu Fri Sat Sun\n"); /*星期提示信息*/if(i!=0)for(temp_i=0;temp_i<i;temp_i++)printf(" ");day=1;if(IsLeapYear(year)&&temp==2)while(day<=month_day[12]){if(day>1)if(Year_days%7==0)printf("\n");if(day>=10)printf("%d ",day);elseprintf("%d ",day);Year_days++;day++;}elsewhile(day<=month_day[temp-1]){if(day>1)if(Year_days%7==0)printf("\n");if(day>=10)printf("%d ",day);elseprintf("%d ",day);Year_days++;day++;} /*依次输入日期*/ printf("\n");}}}int IsLeapYear(int year) /*判断是否是闰年*/ {if((year%4==0)&&(year%100!=0)||(year%400==0))return 1;elsereturn 0;}。

编写万年历C程序

编写万年历C程序
printf("\n您是否继续?(Y/N)\n");
fflush(stdin);
scanf("%c",&i);
if(i=='N'||i=='n')
break;
}
break;
case 5:
break;
default:
printf("\n对不起输入错误!\n");
}
}
}
int leap(int y)
{
if((y%4==0&&y%100!=0)||(y%400==0))
return 1;
பைடு நூலகம் else return 0;
printf("%3d",j++);
if(k==7)
{
printf("\n");
printf("%3d",j++);
}
for(;j<=monthday(y,m);j++)
{
printf("%10d",j);
if((j+k-1)%7==0&&j<monthday(y,m))
printf("\n\n");
printonemonth(2011,6);
printf("\n");
while(1)
{
printf("\n请输入您的操作:\n");
printf("\n1 查询该年是不是闰年");

C语言实现日历输出

C语言实现日历输出

C语⾔实现⽇历输出这个还是挺实⽤的。

头⽂件:#ifndef MAIN_H#define MAIN_H#include "stdio.h"#include "math.h"#include "stdlib.h"//获取某⼀个⽉的最⼤天数int monthday(int,int );//判断闰年 ,是返回1,不是返回0int isleapyear(int );#endif主函数:#include "main.h"int main(){int year,month,days,weekday;int i,d;while(1){printf("please input the year:\n");scanf("%d",&year);days = year-1+(year-1)/400+(year-1)/4-(year-1)/100;//计算某年第⼀天是星期⼏for(month=1;month<=12;month++){printf("\t\t****%d年--%d⽉****\n",year,month);printf("sun\tmon\ttues\twed\tthur\tfir\tsat\t\n");//表头i = 1; d = 1;weekday = (days + 1)%7; //求星期⼏while(i<=weekday) //输出前⾯的空格{printf("\t");i++;}while(d<=monthday(month,year)) //输出⽇期{weekday = (days + 1)%7;if(weekday==6) //最后⼀个是星期六,输出之后要换⾏printf("%d\n",d);else//不是星期六的输出后不换⾏printf("%d\t",d);if(d==monthday(month,year))printf("\n");d++;days++;}}}}功能函数实现:#include "main.h"int monthday(int month,int year){switch(month){case1:case3:case5:case7:case8:case10:case12:return31;break;case4:case6:case9:case11:return30;break;case2:if(isleapyear(year)){return29;//闰年29天break;}else{return28;break;}}}int isleapyear(int year){if((year%4==0)&&(year%100!=0)||(year%400==0))return1;elsereturn0;}效果图:。

C语言实现万年历程序

C语言实现万年历程序
scanቤተ መጻሕፍቲ ባይዱ("%d",&y); for(i=1;i<y;i++) sum+=year(i);
week=(sum+1)%7; //表示该年1月1日为星期几
if(year(y)==366) days[1]=29;
printf("\n%d年日历如下:\n\n",y);
for(i=0;i<12;i++) { printf(" %d月 \n",i+1); printf(" 7 1 2 3 4 5 6\n"); printf("=====================\n"); begin=1; for(j=0;j<week;j++) printf(" "); while(begin<=days[i]) { printf("%3d",begin); begin++; week=(week+1)%7; if(week%7==0) printf("\n"); } printf("\n\n");
这篇文章主要介绍了visualstudio2000系列版本安装opengl的图文教程本文通过图文并茂的形式给大家介绍的非常详细对大家的学习或工作具有一定的参考借鉴价值需要的朋友可以参考下
C语 言 实 现 万 年 历 程 序
本文实例为大家分享了C语言实现万年历程序,供大家参考,具体内容如下
#include <stdio.h>
}
return 0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

大学C语言编程万年历

大学C语言编程万年历

#include <stdio.h>void screen();void whatisit();void leapyear();void printyearday();int IsLeapYear(int);int whatisita(int,int);int everymonth(int,int);void printmonth(int,int);void printmonthday();char* week[]={"Sunday","Monday","Tuseday","Wednsday","Thursday","Friday","Saturday" };int main (){screen ();}void screen (){int n;while (1){printf(" 万年历查询程序:\n");printf("1.查询某年某月某日是星期几\n");printf("2.查询某年是否是闰年\n") ;printf("3.打印某年的全年日历\n") ;printf("4.查询某月的最大天数\n") ;printf("5.退出\n") ;printf("请输入要查询的选项\n") ;scanf("%d",&n);switch (n){case 1: whatisit();break;case 2: leapyear();break;case 3: printyearday();break;case 4: printmonthday();break;case 5: return;default: printf("你输入错误,请按要求输入!!!\n");break;}}}void whatisit(){int y,m,d,s,k=1,sum,n,i;char yn;int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};while(k){printf("请依次输入年,月,日:\n");scanf("%d,%d,%d",&y,&m,&d);s=0;for (i=1;i<m;i++)s=s+a[i];s=s+d;if (IsLeapYear(y)&&m>2)s=s+1;sum=s;n=(y-1+(y-1)/4-(y-1)/100+(y-1)/400+sum)%7;printf ("这天是%s\n",week[n]);printf ("是否继续查询(Y/N)?");scanf ("%c",&yn);getchar ();if (yn=='y'||yn=='Y')k=1;else k=0;}}int IsLeapYear(int year){return (year%4==0&&year%100!=0)||(year%400==0); }void leapyear(){int y,k=1;char yn;while (k){printf("请输入要查询的年份:\n");scanf ("%d",&y);if (IsLeapYear(y))printf("是闰年!\n");elseprintf ("不是闰年!\n");printf ("是否继续查询(Y/N)?");scanf ("%c",&yn);getchar ();if (yn=='y'||yn=='Y')k=1;else k=0;}}int whatisita(int y,int m){int n,i;int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},s=0;for (i=1;i<m;i++)s=s+a[i];if (IsLeapYear(y)&&m>2)s=s+1;n=(y-1+(y-1)/4-(y-1)/100+(y-1)/400+s+1)%7;return n;}void printyearday(){int y,value,sum,i,j,k=1;char yn;while (k){printf("请输入要查询日历的年份\n:");scanf ("%d",&y);for (i=1;i<=12;i++){printf("%d年%d月的信息:\n",y,i);value=whatisita(y,i);sum=everymonth(y,i);printmonth(value,sum);printf("\n");}printf ("是否继续查询(Y/N)?");scanf ("%c",&yn);getchar ();if (yn=='y'||yn=='Y')k=1;else k=0;}}int everymonth(int year,int month){int s;static int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};s=a[month];if (IsLeapYear(year)&&month==2)s=s+1;return s;}void printmonthday(){int y,m,value,k=1;char yn;while (k){printf("请输入要查询的年份,月份\n:");scanf ("%d,%d",&y,&m);value=everymonth(y,m);printf("%d年%d月的最大天数为%d:\n",y,m,value);printf ("是否继续查询(Y/N)?");scanf ("%c",&yn);getchar ();if (yn=='y'||yn=='Y')k=1;else k=0;}}void printmonth(int value,int sum){int n,i=0,j;char* x[7]={"Sunday","Monday","Tuseday","Wednsday","Thursday","Friday","Saturday"};for (j=0;j<7;j++){printf("%s",x[j]);}printf("\n");while(i<value){printf(" ");i++;}for (n=1;n<=7-value;n++)printf(" %d",n);while (n<=sum){if ((n+value-1)%7==0)printf("\n");if (n/10>0)printf(" %d",n);elseprintf(" %d",n);n++;}}。

万年历c语言

万年历c语言

#include<stdio.h>#include<conio.h> /*颜色*/ ——————————————————————————————————main()/*主函数*/{int i;while(1) (使用循环使得函数程序运行可选择操作化!){void _search(void); /*调用的函数:即是自定义的查找函数*/printf("\t\t\twelcome!!\nchose your need:\nchose 1:Enter\t\t2:Exit\nChoice\t\t:"); switch(getch()) /*多分支选择函数*/ {case '1':system("cls");_search();break;case '2': break;;}printf("\nDo you want to go on?\n\t\t1(yes)\t2(not)\n");scanf("%d",&i);if(i==1) continue;elsebreak;}}——————————————————————————————————void _search(void) /*自定义的函数—打印出日历*/{int y,m,d,w,i; /*年,月,日,周*/int mdays[12]={31,28,31,30,31,30,31,31,30,31,30,31}; /*12个月的每个月天数*/ loop: /*循环*/printf("Input year,month,day:"); /*输入所需日期*/scanf("%d,%d,%d",&y,&m,&d);if((y>0)&&(m>=1&&m<=12)&&(d>=1&&d<=mdays[m-1])) /*+选择:满足1~12月且满足相应月的天数*/{system("cls"); /*清屏*/if(m== 1||m== 2) m+=12,y--;w=(y/1+y/4-y/100+y/400+2*m+3*(m+1)/5+1)%7+1;/*主要公式只取计算结果的整数部分。

C语言编写的万年历 (1)

C语言编写的万年历 (1)

#include <stdio.h>main(){void print_head(int x,int y); /*打印头文件*/void print_month(int x,int y); /*打印月历*/int days_of_month(int x,int y); /*计算指定年月的天数*/int leap(int x,int y); /*计算指定年月1号是星期几*/int i,days,year,month,firstday;char choose;do{printf ("\n\nplease input the year(0000~9999):\n\n");scanf ("%d",&year);if (year<0||year>9999) printf ("WANNING:ERROR,please input again!");}while (year<0||year>9999);printf ("\n\n");do{printf ("please input the month(0~12)\n\n\n");scanf ("%d",&month);if (month<=0||month>12) printf ("WANNING:ERROR,please input again!");} while (month<=0||month>12);printf ("\n\n");days=days_of_month(year,month); /*调用函数*/firstday=leap(year,month);print_head(year,month);print_month(firstday,days);choose=getchar();printf ("\n\n\n");printf("would you like to continue(y/n):\n\n");scanf("%c",&choose);if (choose=='y'||choose=='Y') main();}days_of_month(int x,int y){int z;switch (y){case 1:case 3:case 5:case 7:case 8:case 10:case 12: z=31;break;case 4:case 6:case 9:case 11: z=30;break;case 2:{if ((x%4==0&&x%100!=0)||(x%400==0)) z=29;else z=28;break;}}return z;}leap(int x,int y){int z,i,moday;z=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7;for (i=1;i<y;i++){moday=days_of_month(x,i); /*钳套调用函数*/ z=(z+moday)%7;}return z;}void print_head(int x,int y){printf("\n\n************************************************************************** ******\n\n");printf ("\t\t\t\t%d %d\n\n",x,y);printf ("\t\t\t SUN MON TUE WED THU FRI SAT\n");printf ("\t\t\t");}void print_month(int x,int y){int i;char space[7]={' '};for (i=1;i<=x;i++)printf ("%4c",space[i]);for (i=1;i<=y;i++){if ((i+x)%7==1) printf ("\n\t\t\t%4d",i);else printf ("%4d",i);}printf("\n\n************************************************************************** ******\n\n");}。

用c语言编写万年历

用c语言编写万年历
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
else goto loop2;
loop1: for(i=1901;i<year;i++)
{
if(i%400==0||(i%4==0&&i%100!=0))
n++;
}
days=(year-1901-n)*365+n*366;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("一年内只能有12个月!请重新输入!\n");goto redo;
case 3:printf("\t 五月 %d\t\t 六月 %d\n",year,year);break;
case 4:printf("\t 七月 %d\t\t 八月 %d\n",year,year);break;
goto redo;
}
if(month==6&&(day>=31||day<=0))
{
printf("输入有误!6月只能有30天!\n");
goto redo;
}
if(month==7&&(day>=32||day<=0))
{
printf("输入有误!7月只能有31天!\n");
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《探究C语言中while语句写月历程序的深度与广度》
近年来,随着计算机编程领域的迅速发展,C语言作为一门经典而重
要的编程语言,一直备受关注。

而在C语言的学习过程中,编写月历
程序作为一个经典的大作业也备受关注。

本文将深入探究C语言中使
用while语句来写月历程序的深度与广度,并将共享个人观点和理解。

1. 月历程序的基本概念
我们需要明确月历程序的基本概念。

月历程序是指能够输出指定年份
指定月份的日历的程序,它需要考虑到每个月的天数以及每周的起始
日期等因素。

在C语言中,我们通常使用while循环来实现这一功能,月历程序也成为了C语言中while语句的一个经典应用之一。

2. 深度探究while语句的使用
接下来,我们将深度探究while语句在月历程序中的使用。

使用while 语句编写月历程序需要考虑到很多细节,例如如何确定每个月的天数、如何输出日历表格等。

在这个过程中,我们需要使用while循环来处
理每个月的天数,同时不断更新日期,直到输出完整的日历。

这种深
度的应用不仅考验了编程者对while语句的掌握程度,同时也需要考
虑到程序的效率和可读性。

3. 广度展示月历程序的实现
除了深入探究while语句的使用外,我们也需要广度展示月历程序的
实现。

月历程序需要考虑到用户输入的年份和月份,因此我们需要使用while循环来不断接收用户输入,并根据用户的指定日期来输出对应的月历。

在这个过程中,我们还需要考虑到用户可能的非法输入以及程序的健壮性等方面。

月历程序的实现不仅需要考虑到核心的日历输出功能,同时也需要考虑到程序的用户友好性和稳定性。

4. 个人观点与理解
我想共享一下我的个人观点与理解。

在学习C语言过程中,通过编写月历程序来深入理解while语句的使用,不仅能够提升编程能力,同时也能够锻炼我们对细节的处理能力和对程序整体结构的把握能力。

在实际应用中,while语句作为一个重要的循环结构,能够为我们解决很多实际问题,并且在不断实践中提升我们的编程水平。

总结回顾
在本文中,我们深入探究了C语言中使用while语句来写月历程序的深度与广度,并共享了个人观点与理解。

通过对月历程序的实现和while语句的使用进行讨论,我相信读者能够更深入地理解C语言中while语句的应用,并能够在实际的编程过程中灵活运用这一知识点。

C语言中使用while语句来写月历程序的大作业不仅是一项重要的练习,同时也是一个很好的实践机会。

通过对这一大作业的深度与广度的探究,我们能够在编程能力上得到很大的提升。

希望本文能够帮助读者更好地理解C语言中while语句的使用,并且能够在日后的学习
和工作中有所启发。

C语言是一门经典而重要的编程语言,而编写月
历程序则是C语言学习中的一个经典大作业。

本文将续写扩写C语言
中使用while语句写月历程序的深度与广度,并进一步共享个人观点
和理解。

5. 针对月历程序的深度探究
在深入探究while语句的使用时,我们需要考虑一些额外的细节和功能。

在输出日历表格的过程中,还需要考虑到日历表格的格式化和美
观性。

这意味着我们不仅需要使用while循环来处理日期的更新,还
需要使用其他技巧来实现表格的美化和排版。

我们还可以考虑优化程
序的性能,比如通过使用数组来存储月份的天数等方法来提高程序的
效率。

我们还可以进一步考虑如何处理闰年的情况,这需要更深入地理解日
期和时间的计算规则,并且需要使用while循环来处理复杂的逻辑。

在这个过程中,我们可能还需要使用到if-else语句来判断闰年的情况,并且不断更新日期直到输出完整的日历。

这样的深度探究可以帮助我
们更好地理解C语言中while语句的使用,并提升我们的编程能力。

6. 广度展示月历程序的实现
在广度展示月历程序的实现时,我们可以考虑扩展月历程序的功能。

除了输出指定年份指定月份的日历,我们还可以考虑输出全年的日历,或者是输出一个月的周视图。

在这个过程中,我们不仅需要使用while
循环来处理日期,同时还需要考虑如何处理用户输入多个月份的情况,并且根据用户的输入来输出对应的日历。

这可以帮助我们更好地理解
程序的灵活性和可扩展性,同时也能够锻炼我们的编程思维。

我们还可以考虑如何将月历程序与其他模块进行整合,比如与输入输
出模块、数据处理模块等进行整合,从而让程序更加健壮和完整。


过这样的广度展示,我们可以更好地理解C语言中while语句在实际
项目中的应用,并且能够锻炼我们的编程实践能力。

7. 个人观点与理解的进一步共享
在个人观点与理解方面,我认为通过深度与广度的探究,我们能够更
全面地理解C语言中while语句的使用。

在深度探究的过程中,能够
帮助我们理解程序的细节和性能优化,同时也能够提升我们对日期和
时间概念的理解。

在广度展示的过程中,能够帮助我们理解程序的可
扩展性和整合性,同时也能够锻炼我们的编程实践能力和项目管理能力。

我认为编写月历程序不仅具有教育意义,同时也具有实用意义。

通过
编写月历程序,我们不仅能够提升编程能力,同时也能够实现一个实
际有用的工具。

我鼓励学习C语言的同学们在学习过程中尽可能多地
进行实践,编写类似月历程序这样的实际项目,从而能够更好地运用
所学知识。

8. 结语
在C语言中使用while语句写月历程序的深度与广度,是一个很好的编程练习和实践机会。

通过深入探究和广度展示月历程序的实现,我们能够更全面地理解C语言中while语句的应用,同时也能够提升我们的编程能力和实践经验。

希望本文能够帮助读者更好地掌握C语言中while语句的使用,并在实际的编程过程中有所启发。

祝愿大家在学习C语言的道路上取得更大的成功!。

相关文档
最新文档