数组与switch结构

来源:互联网 发布:iphone软件变魔术 编辑:程序博客网 时间:2024/06/06 08:29

题目:从键盘输入年月日,计算并输出该日是该年的第几天。

分析:由于一年中的各个月天数(除去2月)是固定的,所以有两种方法实现题目要求——数组或者switch结构。

1.数组

我们可以定义一个一维数组来存放各个月天数,由于2月天数要看输入年份是否为闰年,在数组初始化的时候可以把第1个元素先设为0.具体用法如下

#include<stdio.h>
#include<math.h>
int main()
{
 int a,b,c,s,k;
 int t[]={31,0,31,30,31,30,31,31,30,31,30,31};
 while(scanf("%d/%d/%d",&a,&b,&c)!=EOF)
 {
   if(((a%100!=0)&&(a%4==0))||(a%400==0))
    t[1]=29;
   else t[1]=28;
   s=c;
   for(k=0;k<b-1;k++)
    s=s+t[k];
 printf("%d\n",s);
 }
 return 0;
}

2.用switch。

显然,switch写法要比数组复杂得多。十二个月要分十二个case,其中二月也要有一个if判断语句。具体程序不在列举。



 


0 0
原创粉丝点击