请求帮忙编写这段c语言程序,完成后联系我给我看一下截图,满意后钱立刻到账。
联系方式:QQ1198736195
微信:Hearbeat021124
也可以私我
有偿请求编写c语音程序
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
关注 你可以参考一下,希望采纳
#include <stdio.h> #include <math.h> int welcome(); //显示欢迎界面 int function1(); //搜索某年的年历或某月的日历 int function2(); //查询历史上的某日为星期几 void function3(); //判断历史上某年是否为闰年 void function4(); //查询历史上某月的最大天数 void searchhead(int year,int month); //打印月历的表头 int leapyear(int year); //判断是否为闰年 int monthnum(int year,int month); //查看哪个月份有多少天 int week(int year,int month,int day); //根据蔡勒公式计算星期几 int nowyear(); //获取系统的年份 int nowmonth(); //获取系统的月份 //主函数 int main() { int select; //用于接收用户的选择 char ch; while(1) { select = welcome(); //用if语句对用户的选择进行判断后执行相应功能 if(select == 1) { function1(); } else if(select == 2) { function2(); } else if(select == 3) { function3(); } else if(select == 4) { function4(); } else if(select == 0) { printf("感谢您的使用,祝您生活愉快!\n"); break; } else { printf("您的输入有误,请重新输入!\n"); } } return 0; } //显示欢迎界面的函数 int welcome() { int select; //用printf语句打印出欢迎界面 printf("\n\n\t\t\t<--欢迎使用万年历-->\n\n"); printf("\t\t****************************************\n"); printf("\t\t请选择要使用的功能:\n\n"); printf("\t\t\t1.搜素某年的年历或某月的日历\n"); printf("\t\t\t2.查询历史上某日为星期几\n"); printf("\t\t\t3.判断历史上某年是否为闰年\n"); printf("\t\t\t4.查询历史上某月的最大天数\n"); printf("\t\t\t0.退出\n\n"); printf("\t\t****************************************\n"); printf("\t\t\t请选择<1,2,3,4,0>:"); scanf("%d", &select) ; printf("\n"); return select; } //打印月历的表头的函数 void searchhead(int year,int month) { printf("\t%d年%d月\n",year,month); printf("\t***************************************************\n") ; printf("\t日\t一\t二\t三\t四\t五\t六\n"); } //查看哪个月份有多少天的函数 int monthnum(int year,int month) { int a1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int a2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; if(leapyear(year)==1) { return(a2[month]); } else { return(a1[month]); } } //功能一:搜素某年的年历或某月的日历 int function1() { int year = 0, month = 1, i, j, spacenum, count; printf("-----搜素某年的年历或某月的日历-----\n\n"); //如果输入的年份小于等于0,就判定为无效年份,提示用户重新输入 //运用do...while循环,只要用户输入不对就一直重新输入,输入正常就执行后面的语句 do { //判断输入年份是否小于等于0 if(year <= 0) { printf("\t系统提示:您输入了错误的年份请从新输入...\n"); } //提示用户重新输入 printf("\t请输入要查看的年份:"); scanf("%d", &year); printf("\n"); } while(year <= 0); //同理,如果输入的月份不是正常范围,就判定为无效月份,提示用户重新输入 do { //判断输入月份是否在1月和12月之间,或者是0(0表示查看年历) if(month < 0 || month > 12) { printf("\t系统提示:您输入了错误的月份请从新输入...\n"); } //提示用户重新输入 printf("\t请输入查看%d年的第几月,若想查看%d年年历请输入0:", year, year); scanf("%d", &month); printf("\n"); } while(month < 0 || month > 12); //查看1-12月中某个月的日历 if(month != 0) { searchhead(year,month) ; //首先打印日历的表头 spacenum = week(year,month,1); //调用week函数计算日历前面有几天是空的 //如果空的天数不是7天,那就按空几天打印几个间隔 if(spacenum != 7) { for(i = 1;i <= spacenum;i++) { printf("\t "); } } //查看哪个月份有多少天后,循环打印出日历 count = spacenum; for(i = 1;i <= monthnum(year,month);i++) { printf("\t%d ",i); count++; //如果一行打印了7天,就换行 (遇到 7的倍数就换行) if(count%7 == 0) { printf("\n"); } } } //查看输入年份的年历 if(month == 0) { for(j=1;j<=12;j++) { searchhead(year,j); //打印日历的表头 spacenum = week(year,j,1); //调用week函数计算日历前面有几天是空的 //如果空的天数不是7天,那就按空几天打印几个间隔 if(spacenum != 7) { for(i = 1;i <= spacenum;i++) { printf("\t "); } } //查看哪个月份有多少天后,循环打印出日历 count = spacenum; for(i = 1;i <= monthnum(year,j);i++) { printf("\t%d ",i); count++; //如果一行打印了7天,就换行 if(count%7 == 0) { printf("\n"); } } printf("\n\n"); } } } //根据蔡勒公式计算星期几 int week(int year,int month,int day) { int w ,c,y; if(month == 1) { month = 13; year = year - 1; } if(month == 2) { month = 14; year = year - 1; } y = year % 100; c = (year/1000) * 10 + (year/100%10); if(y == 0) { c=c-1; } //floor函数,其功能是向下取整 w = y + floor(y/4) + floor(c/4)-2*c + floor(26*(month+1)/10.0) + day - 1; while(w < 0) { w = w + 7; } if(w % 7 == 0) { return 7; } return w%7; } //功能二:查询历史上某日为星期几 int function2() { int year = 0,month = 1,day = 1; printf("-----查询历史上某日为星期几-----\n"); printf("\n"); //如果输入的年份小于等于0,就判定为无效年份,提示用户重新输入 do { //判断输入年份是否小于等于0 if(year <= 0) { printf("\t系统提示:您输入了错误的年份请从新输入...\n"); } //提示用户重新输入 printf("\t请输入要查询的年份:"); scanf("%d",&year); printf("\n"); } while(year <= 0); //如果输入的月份不是正常范围,就判定为无效月份,提示用户重新输入 do { if(month < 1 || month > 12) { printf("\t系统提示:您输入了错误的月份请从新输入...\n"); } printf("\t请输入%d年的第几月:",year); scanf("%d",&month); printf("\n"); } while(month < 1 || month > 12); //如果输入的日期不是正常范围,就判定为无效日期,提示用户重新输入 do { //日期必须在 1到 31之间 if(day < 1 || day > 31) { printf("\t系统提示:您输入了错误的日期请从新输入...\n"); } printf("\t请输入%d年%d月的第几天:",year,month); scanf("%d",&day); printf("\n"); } while(day < 1 || day > 31); ////调用week函数查看所查日期是星期几 printf("\t您查询的%d年%d月%d号是星期%d\n\n",year,month,day,week(year,month,day)); } //判断是否为闰年的函数 int leapyear(int year) { //是闰年 if(year%4 == 0 && year%100 != 0 || year%4 == 0 && year%400 == 0) { return 1; } else //不是闰年 { return 0; } } //功能三:判断历史上某年是否为闰年 void function3() { int year = 0; printf("-----判断历史上某年是否为闰年-----\n"); do { //判断年份是否在正常范围 if(year <= 0) { printf("\t系统提示:您输入了错误的年份请从新输入...\n"); } printf("\t请输入要查询的年份:"); scanf("%d",&year); printf("\n"); } while(year <= 0); //调用leapyear函数判断是否为闰年 if(leapyear(year) == 1) { printf("\t您查询的%d年是闰年\n\n",year); } else { printf("\t您查询的%d年不是闰年\n\n",year); } } //功能四:查询某月的最大天数 void function4() { int year = 0,month = 1,day = 0,i; int a[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31}; //保存闰年的月份天数 int b[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //保存不是闰年的月份天数 printf("-----查询某月的最大天数-----\n"); printf("\n"); //判断用户输入年份是否正常 do { if(year <= 0) { printf("\t系统提示:您输入了错误的年份请从新输入...\n"); } printf("\t请输入要查询的年份:"); scanf("%d",&year); printf("\n"); } while(year <= 0); //判断用户输入月份是否正常 do { if(month < 1 || month > 12) { printf("\t系统提示:您输入了错误的月份请从新输入...\n"); } printf("\t请输入要查询%d年的第几月:",year); scanf("%d",&month); printf("\n"); } while(month < 1 || month > 12); //判断是否是闰年,以此来确定月份的天数 if(leapyear(year) == 1) { day = a[month]; } else { day = b[month]; } printf("\t您查询的%d年%d月的最大天数有%d天\n",year,month,day); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 javaweb项目无法正常跳转
- ¥15 VMBox虚拟机无法访问
- ¥15 skd显示找不到头文件
- ¥15 机器视觉中图片中长度与真实长度的关系
- ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
- ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
- ¥15 java 的protected权限 ,问题在注释里
- ¥15 这个是哪里有问题啊?
- ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
- ¥15 texstudio的问题,