C语言输入年月日,判断第几天的问题最后计算是第几天出错了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言输入年月日,判断第几天的问题最后计算是第几天出错了相关的知识,希望对你有一定的参考价值。

如下列所示。输出的结果不正确,可能是下方for循环那里出了点问题,请大神帮帮忙,谢谢!

int main()
int year,month,day;
int a[12]=31,28,31,30,31,30,31,31,30,31,30,31; //平年2月28天 共365天
int b[12]=31,29,31,30,31,30,31,31,30,31,30,31; //闰年2月29天 共366天
int i,j,dayNum,days;
printf("请输入年份:"); //输入年月日了
scanf("%d",&year);
printf("\n请输入月份:");
scanf("%d",&month);
printf("\n请输入日期:");
scanf("%d",&day);
printf("\n你输入的日期是:%d年%d月%d日\n",year,month,day);
/* assert(month<=12); //限定日期不能超过31,月份不能超过12
assert(day<=31); */

if((year%4==0&&year%100!=0)||(year%400==0)) //判断是否闰年
printf("\n您输入的年份是闰年。\n");
for(i=1;i<month;++i) //加出之前月份的总日期,再加上这个月的日期
dayNum+=b[i];dayNum=dayNum+day;

printf("\n您输入的日期是今年的第%d天\n",dayNum);


else
printf("\n您输入的年份是平年。\n");
for(j=1;j<month;++j) //加出之前月份的总日期,再加上这个月的日期
days+=a[j];days=days+day;

printf("\n您输入的日期是今年的第%d天\n",days);

system("pause");
return 0;

参考技术A main() int year,moth,day;; int mo[12]=31,28,31,30,31,30,31,31,30,31,30,31; int d,i; scnaf("%d %d %d",&year,&moth,&day); d=day; if(闰年判断) mo[1]=29; for(i=0;i<moth-1;i++) d+=mo[i]; printf("%d",d); 追问

特意改成 i=0;i<moth-1 和 我的i=1;i<moth 有什么不同么?
而且我的for里面换上这个答案以后,最后输出的结果也不对……

怎样用c语言编写以年月日的格式输入一个人的生日和当前日期,来计算这个人的年龄

参考技术A 我给你写的不仅能显示年龄而且能显示距现在的天数。当前日期无需输入,程序自动调取系统日期。。运行过了没有任何问题。有什么问题可以交流下。

#include <stdio.h>
#include<time.h>
//计算给定的日期是本年的第几天
int count(int year,int month,int day)
int i,sum=0,flag=0;
int a[13]=0,31,28,31,30,31,30,31,31,30,31,30,31;
for(i=1;i<month;i++)
sum=a[i]+sum;
if(year%400==0||year%100!=0&&year%4==0)
flag=1;
if(flag==1&&month>2) sum++;
sum=sum+day;

return sum;



int main()

int year,month,day;
time_t t;
struct tm *local;
int sum=0,i;
t=time(NULL);
local=localtime(&t);
printf("今天的日期:%d年%d月%d日\n",local->tm_year+1900,local->tm_mon+1,local->tm_mday);
printf("输入生日:");
scanf("%d%d%d",&year,&month,&day);
for(i=year+1;i<local->tm_year+1900;i++)

if(i%400==0||i%100!=0&&i%4==0)
sum+=366;
else sum+=365;

if((year%400==0||year%100!=0&&year%4==0))
sum+=366-count(year,month,day);
else sum+=365-count(year,month,day);
sum+=count(local->tm_year+1900,local->tm_mon+1,local->tm_mday);
printf("%d年%d月%d日距今天有%d天\n",year,month,day,sum);
printf("\n你的年龄为%d\n",local->tm_year+1900-year);



c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!

以上是关于C语言输入年月日,判断第几天的问题最后计算是第几天出错了的主要内容,如果未能解决你的问题,请参考以下文章

C语言的问题:根据输入的年月日,输出该日为该年度的第几周、第几天、星期几。

编程:要求输入某一年月日,判断其为该年的第几天?

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

输入年月日判断这一天是这一年的第几天 ?(C语言编写)!

C语言 定义一个结构体变量(包括年月日),计算该日在本年中是第几天

C语言 定义一个结构体变量(包括年月日),计算该日在本年中是第几天