怎样用c语言编写以年月日的格式输入一个人的生日和当前日期,来计算这个人的年龄
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用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编程高手团队正在招新,有意者速速行动,一起学习,一起努力!
作业-实验一-生日
#include<stdio.h> int main() { int x,y,z; printf("请输入今天的日期,年月日用逗号分开"); scanf("%d,%d,%d",&x,&y,&z); int a,b,c,e; printf("请输入你的生日,格式:年-月-日"); scanf("%d-%d-%d",&a,&b,&c); e=x-a; printf("你今年%d岁,你的生日是%d-%02d-%02d",e,a,b,c); return 0; }
这个也是做过的了,没什么新增的知识点。
当然,这个代码有点问题,变量声明了两次,是个很不好的习惯(个人认为),故意留下来供自己看的。
另外也是一个不强壮的程序,如果生日和日期输反了的话,输出的东西就很有意思了。所以最好用if条件句限制一下。不过因为现在太晚了所以改良版做不完了,等等再补吧。其实改起来有点像“生日的下一天”那个程序呢。(其实是写好了大部分但出了点bug而且没考虑闰年)
突然觉得自己这种态度会被打零分啊。
老师请饶了我吧,现在真的有点晚了QAQ
以上是关于怎样用c语言编写以年月日的格式输入一个人的生日和当前日期,来计算这个人的年龄的主要内容,如果未能解决你的问题,请参考以下文章
c语言编程 同一天生日:在一个有200人的大班级中,存在两个人生日相同的概率非常大。。