c语言第几天的答案,C语言编程计算该日期是该年第几天

C语言编程计算该日期是该年第几天

答案:2  信息版本:手机版

解决时间 2019-10-06 07:48

已解决

2019-10-05 09:56

C语言编程计算该日期是该年第几天

最佳答案

2019-10-05 10:55

在这里首先要说明一条的就是:因为从编写一个源程序,到编译、链接、不断对程序进行错误调试,直到最后能够正确运行出一个可执行程序,那是需要很多的时间和精力的。而不是只靠别人在纸上、或者是文本文件中帮助你写好一个 C 源代码,就一定能够保证程序正确运行的。

所以说你的要求不可能有人能够帮你从编写程序代码、一直到编译、链接、直到调试通过、并运行出正确的程序结果来的。

但是在这里,我可以给你提供一个编程的基本思路就是:若判断某日期为一年中的第几天?那么你首先必须要有一个为参照物。例如:以判断 2018 年的某日期是2018年的第几天为例,那么最简单易行的办法就是:你可以找出 2018 年的整个月历来,仔细观察不同月份之间的关系(例如 2 月份是一个特殊的月份,需要在编程中进行特殊判断)、以及相关规律(哪些月份是 30 天的?哪些月份是 31 天的),然后再使用 C 语言编程就会容易多了。

但是在编程过程中,一定要考虑好大月(31天)、以及小月(30天)等细节编程。

当然了,至于说关于这一年中的所有月、日信息,如何进行保存?使得访问速度快、程序设计巧妙?这就是涉及到算法和数据结构的问题了。

以上这些只是我给你提供的算法和思路,至于说你的程序要是能够运行出正确结果,还是需要你亲自上机进行调试和运行的。

全部回答

1楼

2019-10-05 11:54

//说明:你的程序存在几个语法错误,1、find(x,y,z)应改成find(int x,int y,int z)函数的定义语法;2、//int find(x,y,z);此处声明多余了,因为函数是在前面定义的,就无需再声明了,而且声明语法不对,应为find(int x,int y,int z);要加分号。3、格式控制符号用错了,应该是没有“,”的scanf("%d%d%d",&year,&month,&date);即在%d%d之间没有逗号;//另外我也编了一个仅供参考,编译成功的,在后面。

//此为我对你的代码的改正,都做了注释说明。

#include

int x,y,z;

int find(int x,int y,int z)//find(x,y,z)应改成find(int x,int y,int z)

{int i,t,s,days=0;

if(x%4==0)t=1;

else t=0;

for(i=1;i

void main()

{

int year,month,day,sum;

scanf("%d%d%d",&year,&month,&day);

int p(int year);

int monday(int m);

int find(int y,int m,int d);

sum=find(year,month,day);

printf("the date is the %dth days\n",sum);

}

int p(int year){//判断是否为闰年

int leap;

if((year%4==0&&year%100!=0)||(year%400==0)) leap=1;

else leap=0;

return leap;

}

int mon_day(int y,int m){//判断月份的日子总数

int num;

switch (m)

{ case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:num=31;break;

case 4:

case 6:

case 9:

case 11:num=30;break;

case 2:{if (y&&(m=2)) num=29;

else num=28;

}break;

}

return num;

}

int find(int y,int m,int d){//计算日子,用遍历的方法,因为每个月份的天数是不同的,闰年时2月天数也不同

int sum=d;

while (m>1){

m=m-1;

sum=sum+mon_day(y,m);}

return sum;

}

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值