| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 661 人关注过本帖
标题:关于万年历的一点疑惑
只看楼主 加入收藏
来不及学坏
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-5-28
结帖率:0
收藏
已结贴  问题点数:10 回复次数:4 
关于万年历的一点疑惑
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
 int Year,Month;        //年、月
 int FirstDay_Year,FirstDay_Month;   //某年的第一天是星期几,某年某月的第一天是星期几(范围是0~6,其中0代表星期日)
 int IsLeapYear;        //是否为闰年,0表示不是闰年,1表示是闰年
 int i,d,y;         //临时变量
 char YN;         //Yes No,程序是否要继续
 int Days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};    //Days[1~12]存储每个月有多少天,其中二月的天数是可变的(闰年29天,平年28天),这里初始化为28天

 printf("欢迎使用万年历系统\n");    //打印标题

 XunHuan:          //循环标号(可以通过goto跳转到这里)

 printf("请输入年份<0000~9999>: ");   //提示输入年份(0~9999)
 scanf("%d",&Year);       //把输入的年份赋值给变量Year

 printf("请输入月份<0~12>: ");    //提示输入月份(1~12)
 scanf("%d",&Month);       //把输入的月份赋值给变量Month

 y=Year;
 FirstDay_Year=5*(y/4)+(y%4)-(y/100)+(y/400);    //蔡勒公式(计算某年的第一天是星期几)
 IsLeapYear=(((y%4==0&&y%100!=0)||y%400==0) && y!=0)?1:0;     //判断是否为闰年
 Days[2]=(IsLeapYear==1)?29:28;    //闰年二月29天,非闰年二月28天
 
 for(i=1,d=0;i<Month;i++)
  d=d+Days[i];
  FirstDay_Month=(d+FirstDay_Year)%7;   //当月的第一天是星期几(0代表星期日)

 printf("\n****************************************************\n");
 printf("\t\t公元 %d 年 %2d 月",Year,Month); //打印年月
 printf("\n****************************************************\n");
 printf("   星期日 星期一 星期二 星期三 星期四 星期五 星期六\n");     //打印星期表头

 for(i=0;i<FirstDay_Month;i++)
  printf("%7c",' ');      //当某月的第一天不是星期日时打印空格占位

 for(d=1;d<=Days[Month];d++)     //循环,从每个月的第一天开始打印
 {
  printf("%7d",d);
  if(((d+FirstDay_Month)%7)==0 && d<Days[Month])
  printf("\n");      //当输出了星期六而且还未输出所有天数时,换行
 }
 printf("\n****************************************************\n");
 printf("\n");
 printf("是否继续(Y/N)?\n");
 scanf("%c",&YN);
 scanf("%c",&YN);
 if(YN=='Y' || YN=='y')
  goto XunHuan;
}


请问这个程序中的临时变量i,d,y分别代表什么含义啊,请高手赐教!!!
搜索更多相关主题的帖子: 万年历 
2010-07-22 11:27
mxs810
Rank: 9Rank: 9Rank: 9
来 自:火星
等 级:贵宾
威 望:16
帖 子:234
专家分:1122
注 册:2006-10-19
收藏
得分:2 
i普通的临时变量
d表示天的临时变量
y表示年的临时变量

授人以鱼不如授人以渔
2010-07-22 13:12
qianzezi_pku
Rank: 1
等 级:新手上路
威 望:1
帖 子:8
专家分:2
注 册:2010-7-21
收藏
得分:2 
i:表示普通的循环变量。
d:前面那d:表示从某一年的第一天到当前月份的天数 和  后面那个d表示打印当前月时的循环变量
y:表示年
2010-07-22 22:18
gq198718
Rank: 4
等 级:业余侠客
威 望:1
帖 子:86
专家分:200
注 册:2010-6-6
收藏
得分:2 
都没有什么特殊的含义,
2010-07-24 17:33
saynotolx
Rank: 2
等 级:论坛游民
帖 子:11
专家分:13
注 册:2010-7-26
收藏
得分:2 
顶顶顶顶顶!
2010-07-26 17:24
快速回复:关于万年历的一点疑惑
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013336 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved