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

本题没有加入正确日期判断功能
#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/p/1238271.html