定义一个结构体变量,包括年,月,日。计算该日在本年中是第几天。写一个days函数,实现其运算。

作者&投稿:禾典 (若有异议请与网页底部的电邮联系)
(1)定义一个结构体变量(包括年,月,日).计算该日在本年中是第几天?用函数及返回值形式完成。~

#include "stdio.h"int calculate();//没传递参数int main(){ printf("Please input the day(XXXX/XX/XX):
"); printf("
The day is the %dth day.
",calculate());}int calculate(){ struct date { int year,month,day; } aday; int i,n=0; scanf("%d/%d/%d",&aday.year,&aday.month,&aday.day); for(i=1;i<aday.month;i++) switch(i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:n+=31;break; case 4: case 6: case 9: case 11:n+=30;break; case 2:if(aday.year%4==0&&aday.year%100!=0||aday.year%400==0) n+=29; else n+=28; } n+=aday.day;return n;}

#include
struct
{int year;
int month;
int day;
}tian;
void main()
{int days(int year,int month,int day);
int s;
printf("input the date:");
scanf("%d %d %d",&tian.year,&tian.month,&tian.day);
s=days(tian.year,tian.month,tian.day);
printf("this are %d days.",s);
}
int days(int year,int month,int day)
{int i=month,s,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},sum=0,leap,j;
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;}
else
leap=1;}
else
leap=0;
if(leap&&i>2)
{for(j=1;j<i;j++)
sum=sum+a[j];
s=sum+day+1;}
else
{for(j=1;j<i;j++)
sum=sum+a[j];
s=sum+day;}
return(s);
}

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

int days(struct time_s * pTime)
{
    int a[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //每个月的天数
    int year;
    int loop;
    int day = 0;

    if(pTime == NULL)
    {
        return -1;
    }

    year = pTime->year;
    //闰年
    if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
    {
        a[2] = 29; //2月有29天
    }

    for(loop = 1; loop < pTime->month; loop++)
    {
        day += a[loop];
    }

    day += pTime->day;

    return day;
}

int main()
{
    int day;
    struct time_s sTime;

    sTime.year = 2000;
    sTime.month = 3;
    sTime.day = 5;

    day = days(&sTime);

    printf("%d
", day);

    return 0;
}


请参考以下代码。

不过请注意,该代码中,没有检查月、日是否合法的逻辑,比如月份不能大于13等。请自行增加。

#include <stdio.h>
#include <string.h>

/*

由main函数将年,月,日传递给days函数,计算后将日子数传回主函数输出。

*/

/*定义结构体*/
typedef struct year_month_day{
int year;
int month;
int day;
} YMD;

/*定义days函数,该函数的实现在主函数后面*/
int days(YMD);

/*主函数*/
int main(int argv, char* argc[])
{
YMD ymd;
ymd.year = 2014;
ymd.month = 3;
ymd.day = 5;
printf("日期2014/3/5是2014年中的第%d天。", days(ymd));;

getchar();
return 0;

}

/*days函数的实现,通过结构体传入年、月、日,返回该日在本年中是第几天*/
int days(YMD ymd)
{
int iyear, imonth, iday;

int i;
int total_days = 0;

iyear = ymd.year;
imonth = ymd.month;
iday = ymd.day;

/*先计算截至imonth-1月的总天数*/
for (i = 1; i < imonth; i++){
switch (i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
total_days += 31;
break;
case 4:
case 6:
case 9:
case 11:
total_days += 30;
break;
case 2:
/*2月特殊,闰年2月29天,普通年份2月28天*/
if (((iyear % 4 == 0) && (iyear % 100 != 0)) || (iyear % 400 == 0))
{
total_days += 29;
}
else
{
total_days += 28;
}
break;
default:
total_days = -1;
break;
}
}

/*再加上iday天,作为今年内的第几天的结果,并返回*/
return total_days + iday;
}



C语言结构体定义
结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而...

...的是B可用T定义结构体变量和T是一个结构体变量有区别吗
加上typedef,T之后,这个T就等效于 struct S,是一个结构体类型。也就是说,typedef 只是将 struct S 另定义为一种新的数据类型T。再看答案:A 错误, S 不可以定义结构体变量,要加上 struct ,也就是 struct S + 结构体变量 B 正确, 因为T 等效于 struct S.C 错误 S 不是变量,...

...c语言中,一个结构定义多个结构变量,这些结构变量之间有什么联系吗...
结构体变量和普通变量没有什么本质上的区别。一个变量是放在结构体中还是一个普通变量是由使用者来定义的。定义一个结构体是为了方便管理。include <stdio.h>\/* 这里用结构体定义了一个人的姓名、年龄、体重、身高 *\/struct person{ char name[32]; int age; int weight; int height...

c语言可以使用什么定义复合句?
struct Person {char name[20]; int age; float height;};在上面的示例中,定义了一个名为Person的结构体,包含三个成员:name、age和height,分别表示人的姓名、年龄和身高。可以通过以下方式定义一个Person类型的变量:struct Person person1;在定义结构体变量时,需要使用struct关键字加上结构...

...定义职工结构体变量,从键盘输入一名职工信息,然后输出
include<stdio.h> struct employee { char name[20];char id[20];int gl;int salary;};int main(){ struct employee em;printf("姓名:\\n");scanf("%s",em.name);printf("身份证:\\n");scanf("%s",em.id);printf("工龄:\\n");scanf("%d",&em.gl);printf("工资:\\n");scanf("%d...

结构体定义是什么?
关键字struct和结构体名组合成一种类型标识符,其地位如同通常的int、char等类型标识符,其用途就像 int 类型标识符标识整型变量一样可以用来定义结构体变量。定义变量以后,该变量就可以像定义的其他变量一样使用了;成员又称为成员变量,它是结构体所包含的若干个基本的结构类型,必须用“{}”括起来,...

C语言结构体定义
variable-list为此结构体声明的变量。结构体是C语言中聚合数据类型(aggregatedatatype)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

如何在java中定义一个结构体
像C\/C++里的,第三方的Javolution库提供了类似的解决方案:enum Gender{MALE, FEMALE}; struct Date { unsigned short year; unsigned byte month; unsigned byte day; }; struct Student { enum Gender gender; char name[64]; struct Date birth; float grade...

Linux c中怎么检测一个结构体中是否存在某个变量
c语言中定义一个结构体,其变量在编译时就确定好了。而且,编译后,变量的名称就不存在了,换成了相应的内存地址信息。所以,在运行时,再去检查某个变量是否存在,是不合理的操作,系统是不支持的。可以做的工作是:检测结构体中的变量的值是否为0。如:include <stdio.h>#include <string.h>...

C语言中struct是个什么意思 怎么用 能不能通俗点说
struct string { char name[8];int age;char sex[2];char depart[20];float wage1, wage2, wage3, wage4, wage5;} person;这个例子定义了一个结构名为string的结构变量person, 如果省略变量名 person, 则变成对结构的说明。用已说明的结构名也可定义结构变量。这样定义 时上例变成:struct...

岷县17175641813: )定义一个结构体变量(包括年、月、日).计算改日在本年中是第几天.注意闰年问题.麻烦注明各语句的作用 -
溥元复方:[答案] #include struct sdate{ int year; int mon; int date; }; int main() { int i, m, flag = 0, count = 0;//count表示在该年的第几天,flag等于1时表示闰年,0表示不是 struct sdate datenum; scanf("%d %d %d", &datenum.year, &datenum.mon, &datenum.date);...

岷县17175641813: 定义一个结构体变量(包括年、月、日).计算该日在本年中是第几天? -
溥元复方: #include typedef struct { int year; int month; int day; }date; int days(date d) { int num = 0; int m, da, i; if ((d.year %4 == 0 && d.year %100!=0)||(d.year % 400 == 0)) { for (m = 1; m{ if (m == 2) da = 29; else if (m==4||m==6||m==8||m==11) da = 30; else da...

岷县17175641813: 用C程序编译定义一个结构变量(包括年、月、日).计算该日在本年中是第几天,注意闰年问题 -
溥元复方: #include"stdio.h" struct date { int year; int month; int day; }; int Day(struct date *p) { int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; int i,n=0,m=p->year; if((m%4==0&&m%100!=0)||(m%400==...

岷县17175641813: 定义一个结构体变量(包括年、月、日).计算该日在本年中是第几天?注意闰年问题. -
溥元复方: #include "stdio.h" struct Date { int year,month,day; }; main() { Date tem; scanf("%d %d %d",&tem.year...

岷县17175641813: 'C语言 定义一个包含年月日的结构体变量,任意输入一天,计算该日是本年的第几天 -
溥元复方: #include <stdio.h> #include<string.h> struct date { int year, mouth, day; }; int main() { struct date d; int i, k=0, nday=0; printf("请输入当前年月日: "); scanf("%d%d%d", &d.year, &d.mouth, &d.day); ///先判断是否是闰年,符合条件就是闰...

岷县17175641813: 定义一个结构体(包括年,月,日),计算某在这年中是第几天,注意闰年问题.我的程序如下,请高手赐教!! -
溥元复方: 1. 不能在循环中执行sum+=day1.days;2. 如果闰年的话,还得考虑是大于二月,也就是说在 if((day1.year%400==0)||(day1..year%4==0 && day1.year%100!=0)) 还得有&&(day1.month>2) 即:if(((day1.year%400==0)||(day1..year%4==0 && day1.year%100!=0)) &&(day1.month>2)) 其余没有错 !

岷县17175641813: 定义一个结构体变量(包括年月日).计算某日在一年中是第几天?(注意还要有闰年的判断)
溥元复方: #include&lt;stdio.h&gt; struct date { int year; int month; int day; }date; void main() { int sum=0,leap; printf("\n请输入日期(年,月,日)\n"); scanf("%d,%d,%d",&amp;date.year,&amp;date.month,&amp;date.day); switch(date.month)//先计算某月以...

岷县17175641813: 声明一个结构体Date,包括年月日,即一个日期类型的结构体.(急!!) -
溥元复方: typedef struct Date//建立结构,这只是一个类型,类似于int char { unsigned int days; unsigned intmonths; unsigned int years; }Date; Date date;//这是一个结构变量,类似int date,其中Date是类型 函数就自己思考吧,有一点注意的是,返回值必须是Date类型,一般来说就是传递过来的那个结构变量d.

岷县17175641813: 定义一个结构体变量(包括年、月、日).给出年月日,计算该日在本年中第几天?注意闰年问题.(用C语言程序编写) -
溥元复方: #include<stdio.h> struct data { int ye; int mo; int day; }; int days[]={31,28,31,30,31,30,31,31,30,31,30,31}; int put(data &Data); data Data={0,0,0}; void main() { int i,sum=0; printf("输入年月日:\n"); printf("年:"); scanf("%d",&Data.ye);...

岷县17175641813: 求助高人(翻译语句):定义一个结构体变量(包括年月日).输入你的生日,计算该日是本年中的第几天 -
溥元复方: #include <iostream> using namespace std;//定义日期结构体,包括年、月、日 struct { int year; //年 int month; //月 int day; //日 }date; //声明实体日期date int main() { int i,days; //设输入日期在该年中为第days天 //每年12个月的天数存放在数...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网