void main()
{
int tage,day[12],i,sum=0
struct NewDate
{
int year,month,day
}date
date.year=2009date.month=2date.day=6
if(date.year%100==0)
{
if(date.year%400==0)
tage=1
else tage=0
}
else
{
if(date.year%4==0) tage=1else tage=0
}
day[0]=31//January
day[1]=28//Februayr
day[2]=31//March
day[3]=30//April
day[4]=31//May
day[5]=30//June
day[6]=31//July
day[7]=31//August
day[8]=30//September
day[9]=31//October
day[10]=30//November
day[11]=31//December
for(i=1i<date.monthi++)
sum=sum+day[i-1]//前几个月的天数加上当月的天数才是对的
sum+=date.day
if(tage==1&&date.month>2) sum++//tage==1 当过了二月以后 是闰年才加上那个一
printf("%d-%d-%d is %d in %d\n",date.year,date.month,date.day,sum,date.year)
}
不是C语言只有三种结构,是所有的语言都只存在这三种结构!顺序结构:代码按照编码顺序执行。
选择结构,双称分支结构,细分有单分支,双分支与多分支。单分支只有if结构,还用来做判断。双分支一般指的是if...else结构。多分支一般指的是switch结构,当然多重的if...else也可以实现,同时还是类惟逻辑尺等等编程思想。
循环结构:就是特定条件下要重复执行的语句。一般有步长型for,当型while,直到型do...while(部分语言中是until),以及枚举型foreach(部分语言中是for...in几种。还有几中特殊的直撞调用或间接调用两种形式实现的循环,在部分语言中将其单发为递归结构,但大多数时间由于是函数或方法的调用实现的,不归语言结构范畴,所以虽有递归结构,多数语言中还只认为存在三种基础结构,而递归属于调用层面的结构。所以在死循环时,除了检查我们的循环结构之外,还要特别注意是不是存在的递归调用上的缺少递归条件。