初学C,但不是初学编程,老师布置的作业有点难度(至少对于目前的授课进度)

确保了月份和天数都必须输入正确的值

高中学过vb,有点编程思想就不用从零开始学C了

希望有机会能搞搞竞赛

稍稍讲讲思路

先判断年月日是不是正常数值,计算天数时调用自定义的mon函数得出前月天数和,再加上本月的指定的日期

最后输出前判断闰年2月要不要多加一天

更详细的写在注释里

知识点

  • 全局变量
  • 数组
  • 自定义函数
  • for循环
  • if及逻辑运算
  • switch结构
#include<stdio.h>
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数
int flag=2;//flag用来判断是否为闰年//flag=1表示为闰年,为0非闰年,为2表示输入了不可能存在的年月日
int mon(int x)
{//本函数用于计算这个月之前一共有多少天//感觉写在case里面会很麻烦就用了自定义函数,杨老师别扣我分Orzint i,z=0;for(i=0;i<=x-2;i++)//数组范围0-11,再计算到前一个月,所以x-2{z+=m[i];}return(z);
}
int main()
{int year,month,day,dd;//dd用于存放要输出的天数printf("input year\n");scanf("%d",&year);printf("input month\n");scanf("%d",&month);printf("input day\n");scanf("%d",&day);if((month>0&&month<13)&&(month==2||(month!=2&&(day>0&&day<=m[month-1])))){//判断月份是否输入正确//除2月外天数是否输入正确if(year%4==0&&year%100!=0||year%400==0){//闰年if((month==2&&(day>0&&day<30))||month!=2)flag=1;//2月小于等于29天// else// flag=2;}else {//非闰年if((month==2&&(day>0&&day<=28))||month!=2)flag=0;//2月小于等于28天// else// flag=2;}//之前没给flag赋初值为2,赋值后应该就不用这两个else了}elseflag=2;  //判断结束if(flag!=2){switch(month){case 1:dd=day;break;case 2:dd=mon(month)+day;break;case 3:dd=mon(month)+day;break;case 4:dd=mon(month)+day;break;case 5:dd=mon(month)+day;break;case 6:dd=mon(month)+day;break;case 7:dd=mon(month)+day;break;case 8:dd=mon(month)+day;break;case 9:dd=mon(month)+day;break;case 10:dd=mon(month)+day;break;case 11:dd=mon(month)+day;break;case 12:dd=mon(month)+day;break;}if(flag==1&&month>2)dd++;//闰年的2月多一天printf("这是%d年中的第%d天",year,dd);getchar();}elseprintf("没有这一天!\n");getchar();return 0;
}//getchar使exe在输出结果后不会立马关闭

感觉用do...while循环保证输入日期的正确性也可以,但判断每月天数这一步不是很好处理。

【c语言】计算一年中有多少天相关推荐

  1. C语言/打印日历,用户输入年分和月份两个变量,系统计算该月份的1号是星期几,并计算该月有多少天。最后打印出该日历。已知:1900年1月1日是星期一

    打印日历,用户输入年分和月份两个变量,系统计算该月份的1号是星期几,并计算该月有多少天.最后打印出该日历.已知:1900年1月1日是星期一 C语言 #define _CRT_SECURE_NO_WAR ...

  2. 计算一年中第几天,C语言实现

    计算一年中第几天,C语言实现 #include <stdio.h> int isleap(int year) {int leap;leap = (year % 4 == 0 &&a ...

  3. 《Python自然语言处理》——1.1 语言计算:文本和词汇

    本节书摘来异步社区<Python自然语言处理>一书中的第1章,第1.1节,作者:[美]Steven Bird , Ewan Klein , Edward Loper,更多章节内容可以访问云 ...

  4. 《Python自然语言处理》——第1章 语言处理与Python 1.1 语言计算:文本和词汇...

    本节书摘来自异步社区<Python自然语言处理>一书中的第1章,第1.1节,作者[美]Steven Bird,Ewan Klein,Edward Loper, 陈涛,张旭,崔杨,刘海平 译 ...

  5. 每日一题(27)—— define定义一个宏表明1年中有多少秒

    用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 分析: 1.#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)  2.懂得预处理器将为你计算常数 ...

  6. calendar获取月份少一个月_VBA 技巧:计算一个月有多少天?

    VBA 技巧:计算一个月有多少天? 问题: 有时我们需要知道一个月有多少天,或者知道最后一天是31号还是30号 我们可以通过VBA代码来计算 Sub nb_days_month()'将日期传入变量,月 ...

  7. 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)

    #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL    我在这想看到几件事情:     #define 语法的基本知识(例如:不能以分号结束,括号的使用, ...

  8. define定义一个宏表明1年中有多少秒

    原文链接 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 分析: 1.#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)  2.懂得预处理器将为 ...

  9. C语言 计算某日在一年的第几天及Linux下编译

    目录 一.C语言 计算某日在一年的第几天 二.Linux下编译C语言程序 一.C语言 计算某日在一年的第几天 本篇程序的总体思路是:day=(所求日期月份-1)*31+所求日期的日-多余的天数(由于每 ...

最新文章

  1. android studio导入第三方库和demo
  2. 4.7 mini趴 走进猎豹
  3. 科研|Science回应中国燃料电池研究“造假”:发函重点关注,之前撤稿率100%
  4. 网站推广——网站推广专员浅析企业网站验收和交付要注意哪些问题
  5. wxWidgets:wxStyledTextCtrl类用法
  6. 【Android】Android中Intent的用法总结
  7. 最小可行产品是什么_无论如何,“最小可行产品”到底意味着什么?
  8. 用Delphi制作网络游戏外挂
  9. centos 7 更换yum源
  10. LintCode_514 Paint Fence
  11. 初识机器学习_04 朴素贝叶斯
  12. abcde类 ip地址_IP寻址基础,让你了解IP地址ABCDE类的区分
  13. MATLAB自带的遗传算法工具箱(GADS)
  14. html如何添加微信好友,如何加微信好友,微信加人小妙招
  15. ai钢笔工具怎么描线_AI: 如何用钢笔工具画曲线
  16. x86服务器是32位系统嘛,x86是什么意思?x86是32位还是64位?
  17. 有机化学研究生博士生为什么被要求长时间工作
  18. WEB安全全基础漏洞学习
  19. connect by prior
  20. 10 计算并联电阻的阻值

热门文章

  1. PS 画笔 取消 圆角
  2. 财物机器人英文ppt演讲课件_机器人总动员英文ppt
  3. 聊聊微信小程序开发中的appid、openid、unionid
  4. Mac苹果电脑清理软件哪个好及CleanMyMac X优势对比
  5. C语言练习,产品信息格式化
  6. 追踪(trace)系统框架设计的思考
  7. python爬取网站四种姿势_python爬取网站数据四种姿势,你值得拥有~
  8. Flutter 音频转码Mp3文件插件
  9. 软件测试之——性能测试,Web性能测试用例(详全)
  10. 蓝牙耳机充电仓单芯片IC解决方案汇总