C语言教程之打鱼还是晒网_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

C语言教程之打鱼还是晒网

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:还是教程语言year
黑客防线网安网讯:  *问题分析与算法设计  根据题意可以将解题过程分为三步:  1)计算从1990年1月1日开始至指定日期共有多少天;  2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除...
  *问题分析与算法设计
  根据题意可以将解题过程分为三步:
  1)计算从1990年1月1日开始至指定日期共有多少天;
  2)由于“打鱼”和“晒网”的周期为5天所以将计算出的天数用5去除;
  3)根据余数判断他是在“打鱼”还是在“晒网”;
  若 余数为12,3,则他是在“打鱼”
  否则 是在“晒网”
  在这三步中,关键是第一步求从1990年1月1日至指定日期有多少天,要判断经历年份中是否有闰年,二月为29天,平年为28天闰年的方法可以用伪语句描述如下:
  如果 ((年能被4除尽 且 不能被100除尽)或 能被400除尽)
  则 该年是闰年;
  否则 不是闰年。
  C语言中判断能否整除可以使用求余运算(即求模)
  *程序说明与注释
  #include<stdio.h>
  int days(struct date day);
  struct date{
  int year;
  int month;
  int day;
  };
  int main()
  {
  struct date today,term;
  int yearday,year,day;
  printf("Enter year/month/day:");
  scanf("%d%d%d",&today.year,&today.month,&today.day); /*输入日期*/
  term.month=12; /*设置变量的初始值:月*/
  term.day=31; /*设置变量的初始值:日*/
  for(yearday=0,year=1990;year<today.year;year++)
  {
  term.year=year;
  yearday+=days(term); /*计算从1990年至指定年的前一年共有多少天*/
  }
  yearday+=days(today); /*加上指定年中到指定日期的天数*/
  day=yearday%5; /*求余数*/
  if(day>0&&day<4) printf("he was fishing at that day. "); /*打印结果*/
  else printf("He was sleeping at that day. ");
  }
  int days(struct date day)
  {
  static int day_tab[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 i,lp;
  lp=day.year%4==0&&day.year%100!=0||day.year%400==0;
  /*判定year为闰年还是平年,lp=0为平年,非0为闰年*/
  for(i=1;i<day.month;i++) /*计算本年中自1月1日起的天数*/
  day.day+=day_tab[lp][i];
  return day.day;
  }
  *运行结果
  Enter year/month/day:1991 10 25
  He was fishing at day.
  Enter year/month/day:1992 10 25
  He was sleeping at day.
  Enter year/month/day:1993 10 25
  He was sleeping at day.
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15469-1.html
网站维护教程更新时间:2012-04-04 22:55:16  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer