C编程题:定义一个结构体变量(包括年.月.日).计算该日在本年中是第几天.

作者:佚名    更新日期:2025-06-22

#include"stdafx.h"

#include<iostream>

using namespace std;

struct//定义结构体类型(无名)

{

int year;

int month;

int day;

}date;//定义结构体变量

int main()

{

int days;

cout<<"请输入年月日,比如:2012 12 12:"<<endl;

cin>>date.year>>

date.month>>date.day;//给结构体变量各成员赋值

switch(date.month)//控制月的天数

{

case 1:days=date.day;break;

case 2:days=date.day+31;break;

case 3:days=date.day+59;break;

case 4:days=date.day+90;break;

case 5:days=date.day+120;break;

case 6:days=date.day+151;break;

case 7:days=date.day+181;break;

case 8:days=date.day+212;break;

case 9:days=date.day+243;break;

case 10:days=date.day+273;break;

case 11:days=date.day+304;break;

case 12:days=date.day+334;break;

}

if((((date.year%4==0)&&(date.year%100!=0))||

(date.year%400==0))&&date.month>=3)

{

days=days+1;//daya+=1

}

cout<<date.month<<"月"<<date.day<<

"月是"<<date.year<<"年

中的第"<<days<<"天"<<endl;//输出月天数。

return 0;

}

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include<文件名>

2、#include"文件名"



C语言实现如下:

#include<stdio.h>
void main()
{
struct day
{
int year;
int month;
int date;
}d;//定义结构体变量d。
scanf("%d%d%d",&d.year,&d.month,&d.date);/*输入年、月、日。
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,days=0;
if ((d.year%400==0)||(d.year%100!=0)&&(d.year%4==0)) m[1]++;
for(i=0;i<d.month-1;i++)
days+=m[i];
days+=d.date;
printf("%d
",days);//输入该日在本年中是第几天。
}


#include<iostream.h>
class date{
private:
int year,month,day;
void checkday( );
public:
date(int y,int m,int d){year=y;month=m;day=d;}
};
void main ()
{date obb(2000,1,21);
obb.checkday();
}
void date::checkday()
{ int days[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}},(*p)[13]=days;
if((year%400==0)||(year%4==0&&year%100!=0) ) p+=1;
day+=*(*p+month);
cout<<"该日在本年中是第"<<day<<"天"<<endl;
}

struct _Date_Time
{
short year;
short month;
short day;
}DateTime;

#include <stdio.h>
struct
{ int year;
int month;
int day;
} date;
int main(void)
{
scanf("%d%d%d",&date.year,&date.month,&date.day);
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int s[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int i,days=0;
if ((date.year%400==0)||(date.year%100!=0)&&(date.year%4==0))
{m[1]++;
for(i=0;i<date.month-1;i++)
days+=m[i];}
else
{s[1]++;
for(i=0;i<date.month-1;i++)
days+=s[i];}
days+=date.day;
printf("sumday=%d\n",days);
return 0;
}

用c语言编程 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。~

#includestruct y_m_d{ int year; int month; int day;};int days(struct y_m_d date){ int sum=date.day; int a[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31}; int i; for(i=1; i2&&((date.year%4==0&&date.year%100!=0)||date.year%400==0)) //若闰年,且晚于2月,加一天 sum++; return sum;}int main(){ struct y_m_d date; int day_sum; printf("请输入年月日(以空格隔开):"); scanf("%d%d%d",&date.year,&date.month,&date.day); day_sum=days(date); printf("%d年%d月%d日是%d年的第%d天
",date.year,date.month,date.day,date.year,day_sum); return 0;}执行结果如下:
输入:2016年3月1日
输出:该日是当年的第61天。2016年是闰年,所以3月1日是第61天=31+29+1

#include
#include
#include

struct ymd {
int Y,M,D;
};
const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int YMD_2_JD(int Y, int M, int D){
const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int JD,i;
JD=D;
for (i=0;i<M;i++) JD+=MonthDay[i];
if (((Y%4==0)&&(Y%100!=0)||(Y%400==0)) && (M>2)) JD++;
return JD;
}


void main()
{
int d,k;
struct ymd a;
printf("input Year Month day
");
k = scanf("%4d %2d %2d",&a.Y,&a.M,&a.D);
if (k != 3) {printf("input err
"); exit(0);};
if (a.M 12) {printf("err Month
"); exit(0); };
if ( (a.M==2) && (a.D==29) ) {
if ( (a.Y%4==0)&&(a.Y%100!=0)||(a.Y%400==0)) {goto Lab;} else {printf("err Day
"); exit(0); };
}
if (a.D MonthDay[a.M]) {printf("err Day
"); exit(0); };
Lab:;
if (a.Y < 0) {printf("negtive year
"); exit(0);};
d=YMD_2_JD(a.Y,a.M,a.D);
printf("%d",d);
exit(0);
}