coding第6天1.2

多维数组

考虑一个日期转换问题,
将某月某日转换为转换成某年第几天。
首先,分析该年是闰年还是非闰年,然后在该年的月份上加上天数,比如闰年的3月10日,则是31+29+10=70,即该年的第70天。
将某年的第几天,转换为某年的某月某日,
同样,先分析该年是闰年还是非闰年,然后在该年的日期转换为月份日期,比如闰年第100天,则是100-31=69>0,故大于1月,69-29=40>0,故大于二月,40-31=9>0,故大于三月,9-30<0,故在四月,即为4月9日。
为了方便处理,将闰月与非闰月的天数,存储在一个二维数组之中,

static char daytab[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}};

int day_of year(int year,int month,int day)
{
	int i,leap;
	
	leap=year%4==0&&year%100!=0||year%400==0;
	for(i=1;i<month;i++)
	{
		day+=daytab[leap][i];
	}
	return day;
}
void month_day(int year,int yearday,int *pmonth,int *pday)
{
	int i,leap;

	leap=year%4==0&&year%100!=0||year%400==0;
	for(i=1;yearday>daytab[leap][i];i++)
	{
		yearday-=daytab[leap][i];
	}
	*pmonth=i;
	*pday=yearday;
}

指针数组与二维数组的联系与区别;
(1)首先,从命名角度来看,定义一个二维数组
int a[10][20];与其相一致的指针数组命名为int *b[10];
(2)其次,作为参数传递时,二维数组必须指明其中的列数,因此int a[10][20]在作为参数传递时,等价于int a[][20],还等价于int (*a)[20];这与指针数组是不太相同的,假设指针数组的每个具体化的指向元素的个数也是20个,那么前面的可以写成int *a[10];
(3)二维数组分配的固定的空间,指针数组只是给指针分配了空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来根华子冷静下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值