定义一个结构体变量(包括年月日)。计算某日在一年中是第几天?(注意闰年问题)

2016-06-20 08:22:37  分类: c程序设计第四版谭浩强课后答案  参与:

 定义一个结构体变量(包括年月日)。计算某日在一年中是第几天?(注意闰年问题)

c程序设计(第四版)学习辅导 谭浩强 编著

以下是此题的【c++源代码】,需要【c源代码】请点击进入


解法1【c源程序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)
  { case 1: 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);
 return 0;
}


解法2 【c源程序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);
  return 0;
}


 

来源:c程序设计第四版谭浩强课后答案

本文链接:http://www.wb98.com/c/post/tanhaoqiang_9.1.html

本站文章搜索:

<< 上一篇下一篇 >>

搜索

网站分类

Tags列表

赞助商链接