首页 > 试题广场 >

定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几

[问答题]

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

问题
推荐

9-1-1

#include <stdio.h>

struct

{int year;

int month;

int day;

}date;

int main()

{int days;

printf("input year,month,day:");

scanf("%d,%d,%d",&date.year,&date.month,&date.day);

switch(date.month)

{case1: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+=1;

printf("%d/%d is the %dth day in %d.\n",date.month,date.day,days,date.year);

returrn 0;

}

2.

#include<stdio.h>

struct

{int year;

int month;

int day;

}date;

int main()

{int i,days;

int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

printf("input year,month,day:");

scanf("%d,%d,%d",&date.year,&date.month,&date.day);

days=0;

for(i=1;i<date.month;i++)

days=days+ day_tab[i];

days=days+date.day;

if((date.year%4==0 && date.year%100!=0||date.year%400==0) && date.month>=3)

days=days+1;

printf("%d/%d is the %dth day in %d \n",date.month,date.day,days,date.year);

returrn 0;

}


发表于 2018-03-25 10:33:45 回复(0)
#include<stdio,h>
struct date{
int year;
int month[12];
int day;
};
int i;
date.month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入日期\n");
LOOP:scanf("%d%d%d\n",&date.year,&i,);
if((i>12)&&(date.day>month[i-1]))
{
printf("输入错误\n");
goto LOOP;
}
int j, days;
if((date.year%4==0)&&(date.year%100==0)){
for(j=0;j<(i-1);j++)
{
days=days+date.month;
}
days=days+date.day;
days++;
}
else
{
for(j=0;j<(i-1);j++)
{
days=days+date.month;
}
days=days+date.day;
}
printf("今天是今年第几天%d\n",days);
发表于 2019-05-13 19:21:10 回复(0)