⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex5_5.cpp

📁 谭浩强 c程序学习时的程序 希望对初学者有借鉴意义
💻 CPP
字号:
#include <stdio.h>
static int daytab[2][13] = {  /*C中二维数组实质上是一维元素是数组的数组,*/
    {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}};
    
/*day _of_year: set day of year from month & day */
int day_of_year(int year, int month, int day)
{
	int i, leap;
	int (*p)[13];
	p=daytab;
	if(year<0)
	{
		printf("year error\n");
		return -1;
	}
	leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
	if(month>=13 || month<=0)
	{
		printf("month error\n");
		return -1;
	}
	if(day>*(*(p+leap)+month))
	{
		printf("day error\n");
		return -1;
	}
	
	for (i = 1; i < month; i++)
		day += *(*(p+leap)+i);
	return day;
} 
/*day _of_month: set month, day  from day of year */
int month_day(int year, int yearday,int *pmonth, int *pday)
{
	int i, leap;
	int (*p)[13];

	p=daytab;
	if(year<0)
	{
		printf("year error\n");
		return -1;
	}
	leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
	if((leap==1 && yearday>366) || (leap==0 && yearday>365))
	{
		printf("yearday error\n");
		return -1;
	}

	for (i = 1; yearday > *(*(p+leap)+i);i++)
		yearday -= *(*(p+leap)+i);
	*pmonth = i;
	*pday = yearday;
	return 1;
}

void main()
{
	int year,month,day,yearday,res;
	
	printf("please input year:");
	scanf("%d",&year);
	printf("please input month:");
	scanf("%d",&month);
	printf("please input day:");
	scanf("%d",&day);		
	yearday=day_of_year(year,month,day);
	if(yearday!=-1)
		printf("the result of yearday is %d\n",yearday);
	printf("please input year:");
	scanf("%d",&year);
	printf("please input yearday:");
	scanf("%d",&yearday);	
	res=month_day(year,yearday,&month,&day);
	if(res!=-1)
		printf("%d year %d yearday == %d year %d month %d day",year,yearday,year,month,day);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -