| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1266 人关注过本帖
标题:万年历输出日期怎么不对齐?
取消只看楼主 加入收藏
来不及学坏
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-5-28
结帖率:0
收藏
 问题点数:0 回复次数:1 
万年历输出日期怎么不对齐?
#include<stdio.h> /*文件包含预处理命令,printf( )函数在其中声明*/
#include<stdlib.h> /*文件包含预处理命令,scanf( )函数在其中声明*/

char* month_str[]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
char* week[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};


int IsLeapYear(int year) /*函数声明语句,查询某年是平年还是闰年*/
{
if((year%4==0&&year%100!=0)||(year%400==0))
return 1;
else
return 0; /*返回值0,返回操作系统*/

}
inline int month_day(int year,int month) /*函数声明语句*/
{
int mon_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
if(IsLeapYear(year)&&month==2)
return 29;
else
return(mon_day[month-1]); /*函数返回语句,函数返回到主调函数并将mon_day[month-1]的值一并返回*/

}
int DaySearch(int year,int month,int day) /*函数声明语句,查询某年某月某日是星期几*/
{
int c=0; /*变量定义语句*/
float s; /*变量定义语句*/
int m; /*变量定义语句*/
for(m=1;m<month;m++) /*当m值小于month值时,每次循环m的值自加1*/
c=c+month_day(year,m);
c=c+day;
s=year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c;
return ((int)s%7);
}

int PrintAllYear(int year)/*函数声明语句,打印全年日历*/
{
int temp; /*变量定义语句*/
int i,j; /*变量定义语句*/
printf("\n\n%d Calander\n",year); /*调用在stdio.h中声明的库函数printf( )*/
for(i=1;i<=12;i++) /*当i值小于等于12时,每次循环i的值自加1*/
{
printf("\n\n%s(%d)\n",month_str[i-1],i); /*调用在stdio.h中声明的库函数printf( )*/

printf("日 一 二 三 四 五 六 \n\n"); /*调用在stdio.h中声明的库函数printf( )*/
temp=DaySearch(year,i,1);
for(j=1;j<=month_day(year,i)+temp;j++) /*当j值小于等于month值时,每次循环j的值自加1*/
{
if(j-temp<=0)
printf(" "); /*调用在stdio.h中声明的库函数printf( )*/
else if(j-temp<10)
printf("%d ",j-temp); /*调用在stdio.h中声明的库函数printf( )*/
else
printf("%d ",j-temp); /*调用在stdio.h中声明的库函数printf( )*/

if(j%7==0)
printf("\n"); /*调用在stdio.h中声明的库函数printf( )*/
}
}
return 0; /*返回值0,返回操作系统*/
}

int main(void) /*主函数main(void)*/
{
int option,da; /*变量定义语句*/
char ch; /*变量定义语句*/
int year,month,day; /*变量定义语句*/

printf("\n\n欢迎使用万年历查询系统!\n");/*调用在stdio.h中声明的库函数printf( )*/

while(1) /*无限循环,遇到break跳出循环*/
{
printf("\n请选择您所需要的服务:\n"); /*调用在stdio.h中声明的库函数printf( )*/
printf("\n1 查询某年某月某日是星期几"); /*调用在stdio.h中声明的库函数printf( )*/
printf("\n2 查询某年是平年或闰年"); /*调用在stdio.h中声明的库函数printf( )*/
printf("\n3 打印全年日历"); /*调用在stdio.h中声明的库函数printf( )*/
printf("\n4 退出\n"); /*调用在stdio.h中声明的库函数printf( )*/
scanf("%d",&option);


switch(option)
{
case 1:
while(1)
{
printf("\n请输入年月日(XXXX,XX,XX):"); /*调用在stdio.h中声明的库函数printf( )*/
scanf("%d,%d,%d,%c",&year,&month,&day);
da=DaySearch(year,month,day);
printf("\n%d-%d-%d 是 %s,您希望继续查询吗?(Y/N)",year,month,day,week[da]); /*调用在stdio.h中声明的库函数printf( )*/
fflush(stdin);
scanf("%c",&ch);
if(ch=='N'||ch=='n')
break;
}
break;
case 2:
while(1)
{
printf("\n请输入您希望查询的年份?(XXXX)"); /*调用在stdio.h中声明的库函数printf( )*/
scanf("%d",&year);
if(IsLeapYear(year))
printf("\n%d 是闰年,您希望继续查询吗?(Y/N)",year); /*调用在stdio.h中声明的库函数printf( )*/
else
printf("\n%d 是平年,您希望继续查询吗(Y/N)?",year); /*调用在stdio.h中声明的库函数printf( )*/
fflush(stdin);
scanf("%c",&ch);
if(ch=='N'||ch=='n')
break;
}
break;
case 3:
while(1)
{
printf("\n请输入您希望打印的年份(XXXX)"); /*调用在stdio.h中声明的库函数printf( )*/
scanf("%d",&year);
PrintAllYear(year);
printf("\n您希望继续打印吗Y/N)?"); /*调用在stdio.h中声明的库函数printf( )*/
fflush(stdin);
scanf("%c",&ch);
if(ch=='N'||ch=='n')
break;
}
break;
case 4:
fflush(stdin);
printf("您确认退出吗?(Y/N)"); /*调用在stdio.h中声明的库函数printf( )*/
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
exit(0);
break;
default:
printf("\nError:对不起,现在没有这项查询功能!\n"); /*调用在stdio.h中声明的库函数printf( )*/
break;
}

}

return 0; /*返回值0,返回操作系统*/
}
搜索更多相关主题的帖子: 万年历 输出 
2010-07-19 17:17
来不及学坏
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-5-28
收藏
得分:0 
回复 2楼 zisefengye
找不到啊,您能不能帮忙指出一下错误啊,万分感谢!!!!!!
2010-07-19 17:28
快速回复:万年历输出日期怎么不对齐?
数据加载中...
 
   



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

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