Ⅰ c語言 輸入一位學生的生日(年 月 日),並輸入當前的日期(年 月 日),輸出該生的實際年齡。
#include<stdio.h>
main()
{
	int y0,m0,d0,y1,m1,d1,y,m,d;
	while(1)
	{
	printf("請輸入學生的生日");scanf("%d %d %d",&y0,&m0,&d0);
	printf("請輸入當前的日期");scanf("%d %d %d",&y1,&m1,&d1);
	y=y1-y0;
	m=m1-m0;
	d=d1-d0;
	//printf("該學生的年齡為%d歲%d月%d天",y,m,d);
	if(y>=0)
	{
		if(m>=0)
		{
			if(d>=0)printf("1該學生的年齡為%d歲",y);//y>=0,m>=0,d>=0輸出年齡
			else 
				{
					m=m-1;//如果d<0,m減1,再判斷m是否大於等於0
					if(m>=0)printf("2該學生的年齡為%d歲",y);//y>=0,m>=0,d<0輸出年齡
					else 
						{
							y=y-1;//如果m<0,y減1,再判斷y是否大於等於0
							if(y>=0)printf("3該學生的年齡為%d歲",y);//y>=0,m<0,d<0輸出年齡
							else 
								{
									printf("4輸入有誤");//y<0,m<0,d<0
								}
						}
				}
		}
		else //那麼在y>=0,而m<0的情況下
			{
				y=y-1;
				if(y>=0)printf("6該學生的年齡為%d歲",y);
				else 
					{
						printf("7輸入有誤");
					}
			}
	}
	else printf("5輸入有誤");//最先判斷年份,如果y<0,就錯了,因為當前日期不可能小於學生的生日
		getchar();
		getchar();
	}
}
Ⅱ C語言 年月日
定義個結構數組,分別保存年月日
兩個變數,一個保存生日一個保存當前日期
然後兩個變數相減
Ⅲ c語言輸出年月日
下面是這段代碼,配合注釋體會一下吧
#include <stdio.h>
void MonthDay(int year,int yearDay,int *pMonth,int *pDay);
int main()
{
int year,yearDay,month,day;
scanf("%d%d",&year,&yearDay);//輸入年份和天數
MonthDay(year,yearDay,&month,&day);
printf("%d-%d-%d",year,month,day);
return 0;
}
void MonthDay(int year,int yearDay,int *pMonth,int *pDay)
{
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};//這個數組保存每月的天數
if(year%4==0&&year%100!=0||year%400==0)//判斷是否為閏年
days[1]=29;//閏年的二月有29天
*pMonth=1;//從一月開始看
while(yearDay>days[*pMonth-1])//如果哪一天超出這個月
{
yearDay-=days[*pMonth-1];//求出超出此月的天數
(*pMonth)++;//繼續考慮下一月
}
*pDay=yearDay;
}
Ⅳ C語言問題 請輸入自己的身份證號,輸出出生年月日
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain()
{
charid[]="46198704030811";
printf("請輸入您的身份證號(18位數字): ");
scanf("%s",id);
printf("您出生在%c%c%c%c年%c%c月%c%c日 ",id[6],id[7],id[8],id[9],id[10],id[11],id[12],id[13]);
system("pause");
return0;
}
 
Ⅳ C語言:輸入身份證號,輸出出生年月日
C語言,數字不能和字元串運算。
如果僅為了這樣輸出,可以全部用字元數組變數。
char year[5],month[3],day[3];
...
charyears[5],month[3],day[3];
...
while(i>=6&&i<10)
{
years[i-6]=str[i];
i++;
}
while(i>=10&&i<12)
{
month[i-10]=str[i];
i++;
}
while(i>=12&&i<14)
{
day[i-12]=str[i];
i++;
}
printf("你是%s年%s月%s日出生的人 ",years,month,day);
這是沒有使用字元串操作函數也沒有使用指針的方法。
