输入一位学生的生日(年:y0月:m0日:d0),并输入当前的日期(年:y1月:m1日:d1),输出该生的实际年龄。

#include <stdio.h>
void main()
{
int y0,m0,d0,y1,m1,d1,age;
printf("请输入学生的生日(年,月,日):");
scanf("%d%d%d",&y0,&m0,&d0);
printf("该学生生日是:%d年%d月%d日\n",y0,m0,d0);
printf("请输入当前日期(年,月,日):");
scanf("%d%d%d",&y1,&m1,&d1);
printf("当前日期是:%d年%d月%d日\n",y1,m1,d1);
age=y1-y0;
if(m1<m0||m1==m0&&d1<d0)
{ age--;
printf("该学生年龄为:%d岁\n",age);}

else
printf("该学生年龄为:%d岁\n",age);}
帮我看看这个程序哪里存在错误,我是个初学者还望指教,谢谢!

第1个回答  2018-01-15
int a,b,c,x,y,z,age;
printf("Enter a&b&c : &x&y&z:");
scanf("%4d%2d%2d%4d%2d%2d",&a,&b,&c,&x,&y,&z);
printf("%d.%d.%d %d.%d.%d\n",a,b,c,x,y,z);
age=x-a;
if(y<b||y==b&&z<c) age--;
printf("%d\n",age);
/*a,b,c为学生生日,x,y,z为当前的日期,换一下就行了,age为年龄*/
第2个回答  2019-06-05
# include<stdio.h>
main()
{int y0,m0,d0,y1,m1,d1,x;
printf("input 生日和当前日期\n");
scanf("%d %d %d %d %d %d",&y0,&m0,&d0,&y1,&m1,&d1);
if(m1>m0)
x=(y1-y0);
else if(m1<m0)
x=(y1-y0-1);
else /*同月有两种情况*/
{if(d1>=d0) x=y1-y0;
else
x=(y1-y0-1);}
printf("%d",x);
}本回答被网友采纳
第3个回答  2009-10-21
你这出啥错了,每个printf和scanf后面加个getchar试试?上面加上#include<conio.h>
第4个回答  2013-12-12
scanf的时候应该是scanf("%d,%d,%d",&y1,&m1,&d1);

...月:m0、日:d0);并输入当前的日期(年:y1、月:m1、日:d1)
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)||11<y<1&&11<b<1||31<z<1&&31<c<1...

输入一个学生生日(y0,m0,d0)和当前日期(y1,m1,d1),计算并输出该学生实...
int main(void){ int y0, m0, d0;int y1, m1, d1;int age;printf("enter your birthday:\\n");scanf("%d%d%d", &y0, &m0, &d0);printf("enter current date:\\n");scanf("%d%d%d", &y1, &m1,&d1);age = y1 - y0;if(m1 < m0)--age;else if(m1 == m0 && d1 < d...

输入一个学生生日(y0,m0,d0)和当前日期(y1,m1,d1),计算并输出该学生实...
int main(void){ int y0, m0, d0;int y1, m1, d1;int age;printf("enter your birthday:\\n");scanf("%d%d%d", &y0, &m0, &d0);printf("enter current date:\\n");scanf("%d%d%d", &y1, &m1,&d1);age = y1 - y0;if(m1 < m0)--age;else if(m1 == m0 && d1 < d...

输入一个学生生日(y0,m0,d0)和当前日期(y1,m1,d1),计算并输出该学生实...
int main(void){ int y0, m0, d0;int y1, m1, d1;int age;printf("enter your birthday:\\n");scanf("%d%d%d", &y0, &m0, &d0);printf("enter current date:\\n");scanf("%d%d%d", &y1, &m1,&d1);age = y1 - y0;if(m1 < m0)--age;else if(m1 == m0 && d1 < d...

输入一个学生的生日;并输入当前的日期;试设计程序输出该学生的实足...
include <iostream>using namespace std;int main(){ int a,b,c,x,y,z; int s[12]={31,28,31,30,31,30,31,31,30,31,30,31}; cout<<"输入学生生日(格式:yyyy-dd-nn):"; \/\/输出年龄,生日应该为出生日期 cin>>"%d-%d-%d">>&a>>&b>>&c ;cout<<"输入当前日期...

C语言编程,求一个人的年龄是多少。
第一行第一的是y0,你写成了yo include<stdio.h>int main(){int y0,m0,d0,y1,m1,d1,nianling;\/\/\/y0printf("请输入您的生日:");scanf("%d,%d,%d",&y0,&m0,&d0);printf("请输入当前日期:");scanf("%d,%d,%d",&y1,&m1,&d1);nianling=y1-y0;if(m1>m0){if(d1>d0)nianling...

编写一个程序输入一个人出生年月日和当前日期,计算出他的年龄和距离下...
int dCalc ( int y, int m, int d, int y0, int m0, int d0 ) \/\/ 天数 { int d1, d2;d1 = getDay ( y, m0, d0 ); \/\/ 今年生日 d2 = getDay ( y, m, d ); \/\/ 今天 if (d1<d2) d1 = getDay ( y+1, m0, d0 ) \/\/ 今年生日过去了, 算明年生日 return ...

scanf输入之后不执行,无法进入到下一个scanf?
首先,建议不要在 scanf() 里把逗号也格式化进去,直接不写或者用空格会适用性会更好。然后解决你的问题,在 scanf() 最后一个读入前 加上 %*c,意思是读取这之后的所有字符,效果就是会把回车吃掉,这样就不会影响后面的输入了。scanf("(%d%d%d%*c)",&y0,&m0,&d0);注意这里的 %*c 不...

2月28日这一天的第100天是哪一天呢?
写一个程序就可以解决,如下:include<stdio.h> int main(){ int y,m,d,y0,m0,d0,y1,m1,d1;printf("请输入出生日期!\\n");printf("年 月 日\\n");scanf("%d %d %d",&y0,&m0,&d0);while(m0>12||d0>31)\/\/天大于31或月大于12,则错误 { printf("错误!\\n请重新输入!\\n"...

下面那个if else 语句是怎么回事? 为什么要那样写呢?if 表达式都能看懂...
如果 { m1<m0(当前月 小于 出生月)|| ( 或)m1==m0 (当前月 等于 出生月)&& (与(并且))d1<d0(当前日 小于 出生日)就年龄减一 } 否则 年龄就是y1-y0 (当前年 减 出生年)

相似回答