问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言计算某年某月某日 是该年的第几天

发布网友 发布时间:2023-05-18 10:55

我来回答

5个回答

热心网友 时间:2023-09-30 16:52

#include
void main()
{
int y,m,d;
int sum=0;
int flog;//标识是否是闰年
printf("请输入年月日(yyyy-mm-dd)\n");
scanf("%4d-%2d-%2d",&y,&m,&d);
if(( y%4==0 && y%100!=0 ) || y%400==0)
flog=1;
else
flog=0;
while((y<0)||(m>12||m<0)||(d<0||d>31)||((m%2==0)&&(d==31))||((flog==1)&&(m==2)&&(d>28)))
{
printf("input errro!\n");
printf("请输入年月日(yyyy-mm-dd)\n");
scanf("%4d-%2d-%2d",&y,&m,&d);
}
switch (m-1)
{
case 12: sum+=31;
case 11: sum+=30;
case 10: sum+=31;
case 9: sum+=30;
case 8: sum+=31;
case 7: sum+=31;
case 6: sum+=30;
case 5: sum+=31;
case 4: sum+=30;
case 3: sum+=31;
case 2:
if(flog==1)
//这里改一下
sum+=28;
else
sum+=30;
case 1: sum+=31;break;
//这里加上一个break语句
default:printf("非法月份\n");
break;
}
sum=sum+d;
if(flog==1)
printf("%d is leap year!\n",y);
printf("这一天是这年的第%d天",sum);
}

热心网友 时间:2023-09-30 16:53

你的程序有2处错误,已改正,win-tc下运行正确。
#include<stdio.h>
#include<string.h>
#include<conio.h>
int
leap(int
year)
{
int
leap1;
if(year%400==0||(year%4==0&&year%100!=0))
leap1=1;
else
leap1=0;
return
leap1;
}
int
main()
{
int
year,month,day,sum1=0,sum,i;
int
monthday;
printf("Input
the
date:
");
scanf("%d%d%d",&year,&month,&day);
for(i=1;i<month;i++)
/*
月份是从1开始的
*/
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
monthday=31;
else
if(i==4||i==6||i==9||i==11)
monthday=30;
else
{
if(leap(year)==1)
monthday=29;
/*
你搞反了,闰年是29天
*/
else
monthday=28;
}
sum1=sum1+monthday;
}
sum=sum1+day;
printf("%d",sum);getch();
}

热心网友 时间:2023-09-30 16:53

算法很乱 看不出 我给你三个
//===================================================================
//计算日期是那一天
//二维数组的算法
//===================================================================
#include<iostream>
using namespace std;
int b[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int theday(int,int,int);
bool leadyear(int);
//-------------------------------------------------------------------
void main(){
for(int y,m,d;cin>>y>>m>>d;)
cout<<"the day is "<<theday(y,m,d)<<" of the day."<<endl;
}//------------------------------------------------------------------
bool leadyear(int year){
if(year%4==0 && year%100!=0||year%400==0)
return true;
else
return false;
}//-------------------------------------------------------------------
int theday(int y,int m,int d){
int total=0;
if(leadyear(y)){
for(int i=0;i<m-1;i++)
total+=b[1][i];
}
else{
for(int i=0;i<m-1;i++)
total+=b[0][i];
}
return (total+d);
}//====================================================================

//===================================================================
//计算日期是那一天
//两个算法:theday与theday2
//===================================================================
#include<iostream>
using namespace std;
//-------------------------------------------------------------------
int theday(int ,int ,int);
int theday2(int ,int ,int);
//-------------------------------------------------------------------
void main(){
for(int y,m,d;cin>>y>>m>>d;){
cout<<"那一天是那一年的第"<<theday(y,m,d)<<"天"<<endl;
cout<<"那一天是那一年的第"<<theday2(y,m,d)<<"天"<<endl;
}
}//------------------------------------------------------------------
int theday(int year,int month,int day){
int total=0;
switch(month){
case 1:total=day;break;
case 2:total=day+31;break;
case 3:total=day+59;break;
case 4:total=day+90;break;
case 5:total=day+120;break;
case 6:total=day+151;break;
case 7:total=day+181;break;
case 8:total=day+212;break;
case 9:total=day+243;break;
case 10:total=day+273;break;
case 11:total=day+304;break;
case 12:total=day+334;break;
}
if((year%4==0 && year%100!=0 || year%400==0) && month>2)
total=total+1;
return total;
}//------------------------------------------------------------------
int theday2(int year,int month,int day){
int total=0;
if(month>0)
total=day;
if(month>1)
total=total+31;
if(month>2)
total=total+28;
if(month>3)
total=total+31;
if(month>4)
total=total+30;
if(month>5)
total=total+31;
if(month>6)
total=total+30;
if(month>7)
total=total+31;
if(month>8)
total=total+31;
if(month>9)
total=total+30;
if(month>10)
total=total+31;
if(month>11)
total=total+30;
if((year%4==0 && year%100!=0 || year%400==0) && month>2)
total=total+1;
return total;
}//================================================================

热心网友 时间:2023-09-30 16:54

你的程序有2处错误,已改正,win-tc下运行正确。
#include<stdio.h>
#include<string.h>
#include<conio.h>

int leap(int year)
{ int leap1;
if(year%400==0||(year%4==0&&year%100!=0))
leap1=1;
else
leap1=0;
return leap1;
}

int main()
{
int year,month,day,sum1=0,sum,i;
int monthday;
printf("Input the date: ");
scanf("%d%d%d",&year,&month,&day);
for(i=1;i<month;i++) /* 月份是从1开始的 */
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
monthday=31;
else if(i==4||i==6||i==9||i==11)
monthday=30;
else
{
if(leap(year)==1)
monthday=29; /* 你搞反了,闰年是29天 */
else
monthday=28;
}
sum1=sum1+monthday;
}
sum=sum1+day;
printf("%d",sum);getch();
}

热心网友 时间:2023-09-30 16:54

for里面因该是i=1;i<mouth;i++
因为你的0月算在2月里了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
mrna转录试剂盒 windows7应用程序损坏或丢失怎么办? 联想windows7怎么恢复不小心删除的应用 Win7电脑图标不见了如何恢复解决Win7电脑图标丢失问题的有效方法_百 ... 美女主播软件有哪些 什么软件看美女直播? 什么视频直播软件可以免费看女神直播? 钣金工业设计 钣金灰本段用途 关于刮胡子的相关问题 急急急 在单片机c语言程序中 gd_flog=~gd_flog; 是什么意思? 简单c语言题。求鞍点?下面的程序哪里错了?顺便求高手详解一下flog的用法?菜鸟拜谢。 我有乳腺结节,请问是拍彩超吗 乳腺纤维瘤拍片是什么科 县委办、县政府办与各大局是平级单位吗 县委办是监督机关吗 县政府办公室和县委办公室有什么区别? 县委办公室是什么性质的单位,有前途吗? et制版系统在工具栏下多出一行工具栏怎么取消? et打版怎么显示全码数 et软件显示功能名称怎么设置 对不予颁发安全生产许可证的煤矿如何处理可不可以整改 哪些行业不需要生产许可证?哪些行业需要生产许可证?依据是什么? 我下载到电脑的办公软件打开为什么显示已损坏? 快手推广订单佣金已失效 廊坊市三一教育怎么样 车辆购置税咋算的 购买下列车辆,应计算缴纳车辆购置税的有( )。 数学题 附加题【10分】 小学六年级上学期数学附加题(5道就够)【好的加悬赏50分】【2月13日截止】【献爱心,2011事事顺心快乐】 河北仓州肃宁话打粑粑腻是啥意思 安庆市未来几年的发展方向 安庆地区人数 一个男的在什么情况下会带女生去看他装修好的新房,谈论经济情况,并非男女朋友关系,他是什么意思? 一个男友带一个女知己去自己新装修好的房子是什么意思? 前男朋友突然打电话叫我去看他装修的新房是什么意思 男生的新房子装修好了 提出带你去看看 这是什么意思? 指尖上的中国年是啥意思 杭州指尖文化创意有限公司怎么样? 道存犹可追的意思是什么 十五画属火的字有哪些 什么是无爱的婚姻? 产品宣传动画视频的制作方法有哪些是和动画视频制作是一样的吗 产品动画视频的制作方式有哪些? 案件交办是什么意思 交办和交代的区别 双重交办、双重督办的内容? 服装制样间是车间吗? 服装生产车间的具体流程? 样板车间