定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题。...

本题没有加入正确日期判断功能
#include  < stdio.h >

struct  date 
{
    
int  year; 
    
int  month; 
    
int  day; 
}; 

int  leap_year( int  a);
int  cal_day( struct  date a);

/* 判断闰年 */  
int  leap_year( int  a)
{
    
if (a % 400 == 0 || (a % 4 == 0 && a % 100 != 0 )) 
        
return   1 ;
    
else  
        
return   0 ;

//      if(a%400==0)
//          return 1;
//      else if(a%100==0)
//          return 0;
//      else if(a%4==0)
//          return 1;
//      else 
//          return 0;
}

/* 计算一年中的第几天 */  
int  cal_day( struct  date a) 
{
    
int  sum = 0 ,b[] = { 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 } ;
    
for ( int  i = 0 ;i < a.month - 1 ;i ++
        sum
+= b[i]; 
    
if (a.month > 2 )
        sum
= sum + a.day + leap_year(a.year); 
    
else
        sum
= sum + a.day;
    
return  sum; 


void  main()
{
    
struct  date a;
    
int  n;
    printf(
" \n请输入日期(年 月 日)\n " ); 
    scanf(
" %d%d%d " , & a.year, & a.month, & a.day); 
    n
= cal_day(a);
    printf(
" 该日在本年中是第%d天\n " ,n);
}

转载于:https://www.cnblogs.com/qixin622/archive/2008/07/08/1238271.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值