作业帮 > 综合 > 作业

编写程序:输入一个学生的生日(年;y0、月:m0、日:d0);并输入当前的日期(年:y1、月:m1、日:d1)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 19:19:32
编写程序:输入一个学生的生日(年;y0、月:m0、日:d0);并输入当前的日期(年:y1、月:m1、日:d1)
输出该生的实际年龄.
#include
int main()
{
int a,b,c,x,y,z,s[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("输入学生生日(格式:yyyy-dd-nn):"); //输出年龄,生日应该为出生日期
scanf("%d-%d-%d",&a,&b,&c);
printf("输入当前日期(格式:yyyy-dd-nn):");
scanf("%d-%d-%d",&x,&y,&z);
if(x
if语句一片混乱,修改了一下,好了#include <stdio.h>int main(){ int a,b,c,x,y,z; int s[12]={31,28,31,30,31,30,31,31,30,31,30,31};   printf("输入学生生日(格式:yyyy-dd-nn):");   //输出年龄,生日应该为出生日期  scanf("%d-%d-%d",&a,&b,&c); printf("输入当前日期(格式:yyyy-dd-nn):"); scanf("%d-%d-%d",&x,&y,&z); if((x<a)||(a==x&&y<b)||(a==x&&b==y&&z<c)||(y<1&&y>12&&y>12&&y<1)||(z<1&&z>31&&c<1&&c>31))/*b或y不小于1或不大于12,c或z不小于1或不大于31*/  printf("输入日期错误!\n"); else  printf("%d岁%d个月%d天\n",y>b?(x-a):(x-a-1),c>z?(y>b?(y-b-1):(12+y-b-1)):(y>b?(y-b):(12+y-b)),z>c?(z-c):((y-1)==2?((x%4)==(x%400)?(s[y-1]+1+z-c):(s[y-1]+z-c)):(s[y-1]+z-c)));}希望你能看懂