博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《C语言及程序设计》实践参考——当年第几天
阅读量:6864 次
发布时间:2019-06-26

本文共 3570 字,大约阅读时间需要 11 分钟。

返回:  

【项目5-当年第几天】

定义一个函数,其参数为年、月、日的值,返回这一天为该年的第几天。要求在main函数中输入年月日,然后调用这个函数求值,并在main函数中输出结果。

#include
int days(int y, int m, int d);int main(){ int year, month, day; printf("输入年 月 日: "); scanf("%d %d %d", &year, &month, &day); printf("这是该年的第 %d 天\n", days(year, month, day)); return 0;}int days(int y, int m, int d){ }
[参考解答]
解法1:
#include
int days(int y, int m, int d);int main(){ int year, month, day; printf("输入年 月 日: "); scanf("%d %d %d", &year, &month, &day); printf("这是该年的第 %d 天\n", days(year, month, day)); return 0;}int days(int y, int m, int d){ int sum=d; //下面要加上前m-1月的天数 int i; for(i=1; i
解法2:
#include
int days(int y, int m, int d);int main(){ int year, month, day; printf("输入年 月 日: "); scanf("%d %d %d", &year, &month, &day); printf("这是该年的第 %d 天\n", days(year, month, day)); return 0;}int days(int y, int m, int d){ int sum=d; //加上前m-1月的天数 int i; for(i=1; i
解法3:后面要学习数组。然后就可以这样来了,30行之内解决问题(对数组充满期待吧):
#include
int days(int y, int m, int d);int main(){ int year, month, day; printf("输入年 月 日: "); scanf("%d %d %d", &year, &month, &day); printf("这是该年的第 %d 天\n", days(year, month, day)); return 0;}int days(int y, int m, int d){ int sum=d; int a[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31}; int i; for(i=1; i
2&&((y%4==0&&y%100!=0)||y%400==0)) //若闰年,且晚于2月,加一天 sum++; return sum;}
解法4:有同学写成下面的代码,结果对,但这样的程序的确不好:
#include
int days(int y, int m, int d);int main(){ int year, month, day; printf("输入年 月 日: "); scanf("%d %d %d", &year, &month, &day); printf("这是该年的第 %d 天\n", days(year, month, day)); return 0;}int days(int year, int month, int day){ int t; if(year%4==0&&year%100!=0||year%400==0) { switch(month) { case 1: t=day; break; case 2: t=day+31; break; case 3: t=day+31+29; break; case 4: t=day+31+29+31; break; case 5: t=day+31+29+31+30; break; case 6: t=day+31+29+31+30+31; break; case 7: t=day+31+29+31+30+31+30; break; case 8: t=day+31+29+31+30+31+30+31; break; case 9: t=day+31+29+31+30+31+30+31+31; break; case 10: t=day+31+29+31+30+31+30+31+31+30; break; case 11: t=day+31+29+31+30+31+30+31+31+30+31; break; case 12: t=day+31+29+31+30+31+30+31+31+30+31+30; break; } return t; } else { switch(month) { case 1: t=day; break; case 2: t=day+31; break; case 3: t=day+31+28; break; case 4: t=day+31+28+31; break; case 5: t=day+31+28+31+30; break; case 6: t=day+31+28+31+30+31; break; case 7: t=day+31+28+31+30+31+30; break; case 8: t=day+31+28+31+30+31+30+31; break; case 9: t=day+31+28+31+30+31+30+31+31; break; case 10: t=day+31+28+31+30+31+30+31+31+30; break; case 11: t=day+31+28+31+30+31+30+31+31+30+31; break; case 12: t=day+31+28+31+30+31+30+31+31+30+31+30; break; } return t; }}

转载地址:http://qwufl.baihongyu.com/

你可能感兴趣的文章
PHP类的定义
查看>>
Composer 中国镜像地址配置
查看>>
IE8兼容问题
查看>>
easyui-datagrid 编辑模式详解
查看>>
简单入门循环神经网络RNN:时间序列数据的首选神经网络
查看>>
《软件定义网络:基于OpenFlow的SDN》一一2.5 本章总结
查看>>
《抓住听众心理——演讲者要知道的100件事》一20.人们学习的最优长度是20分钟...
查看>>
《JUnit实战(第2版)》—第2章2.1节探索JUnit核心
查看>>
Docker背后的内核知识:命名空间资源隔离
查看>>
《圣殿祭司的ASP.NET4.0专家技术手册》---- 1-13 ClientBuilderManager类别的编译功能...
查看>>
《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.7 修复错误...
查看>>
《Redis入门指南(第2版)》一3.2 字符串类型
查看>>
《Adobe Flash Professional CC经典教程》——1.3 使用“库”面板
查看>>
《Android应用开发入门经典(第3版)》——导读
查看>>
xmemcached发布1.3.6
查看>>
《Nmap渗透测试指南》—第6章6.4节IP欺骗
查看>>
Samba 系列(九):将 CentOS 7 桌面系统加入到 Samba4 AD 域环境中
查看>>
《C Primer Plus(第6版)中文版》一第1章 初识C语言1.1 C语言的起源
查看>>
《C语言及程序设计》实践参考——当年第几天
查看>>
前端使用fis3开启本地服务器,并实现热加载功能
查看>>