ZKX's LAB

输入某年某月某日,判断这一天是这一年的第几天?

2021-04-23知识8

输入某年某月某日,判断输入天是这一年的第几天,c语言,先编一个函数,从主函数中调用 #includeint date(int year,int month,int day){ int a[]={31,28,31,30,31,30,31,31,30,31,30,31};int sum=0;int i;if(((year%4=0)&(year%100。0))|(year%400=0))sum+;for(i=0;i;i+)sum=sum+a[i];return sum+day;}int main(){ int year=0,month=0,day=0,n=0;printf(\"input year:\\n\");scanf(\"%d\",&year);printf(\"input month:\\n\");scanf(\"%d\",&month);printf(\"input day:\\n\");scanf(\"%d\",&day);n=date(year,month,day);printf(\"%d年%d月%d号是今年第%d天\\n\",year,month,day,n);return 0;}在vc环境下 已测试运行成功

C语言编程:输入某年某月某日,判断这一天是这一年的第几天? |#include输入某年某月某日2113,判断这一天是这一年的第5261几天?4102int getDaysByMonth(int m,int d,char flag){int c;if(flag='r'){/闰年if(m=2){/2月是29天return(31+d);}else if(m>;2){c=0;m=m-1;for;m>;0;m-){if(m=1|m=3|m=5|m=7|m=8|m=10|m=12){c+31;}else if(m=2){c+29;}else{c+30;}}return c+d;}else{return d;}}else{/平年1653if(m=2){/2月是28天return(31+d);}else if(m>;2){c=0;m=m-1;for;m>;0;m-){if(m=1|m=3|m=5|m=7|m=8|m=10|m=12){c+31;}else if(m=2){c+28;}else{c+30;}}return c+d;}else{return d;}}}void main(){int y,m,d,count=1;printf(\"请输入年月日(例如2017-01-01):\");scanf(\"%d-%d-%d\",&y,&m,&d);while(((((y%4=0&y%100。0)|(y%400=0))&(m=2))&d>;29)|(y%400。0&y%4。0&m=2&d>;28)|((m=1|m=3|m=5|m=7|m=8|m=10|m=12)&d>;31)|((m=4|m=6|m=9|m=11)&d>;30)){printf(\"请输入年月日(例如2017-01-01):\");scanf(\"%d-%d-%d\",&y,&m,&d);}先判断是否为闰年if((y%4=0&y%100。0)|(y%400=0)){/闰年count=getDaysByMonth(m,d,'r');}else{/平年count=getDaysByMonth(m,d,'n');}printf(\"%d-%02d-%02d是今年的第%d天\\n。

题目:输入某年某月某日,判断这一天是这一年的第几天? 下面是我改的你的程序,有问题的地方我加了注释了,你可以跟你以前的对比一下。可以运行,能正确判断闰年的天数。includeint main(){int year,month,day,sum=0,leap;printf(\"输入某年某月某日:\");scanf(\"%d%d%d\",&year,&month,&day);容易粗心输入格式错误,就把%d后面的逗号去了。switch(month){case 1:sum=0;break;case后的应该是数字而不是字符,也就是数字没有单引号case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf(\"输入错误\");break;}sum=sum+day;if(year%400=0|(year%4=0&year%100。0))leap=1;elseleap=0;if(leap=1&month>;2)/判断leap是否为1应为:leap=1,而不是赋值leap=1。sum+;printf(\"%d\\n\",sum);}

随机阅读

qrcode
访问手机版