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;
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯