我用c语言入门做了个日历,但是它的输出有问题,谁能帮我看看,代码如下

使用C语言编写日历查询,要求输入年份,显示日历按两列输出_百度知道
使用C语言编写日历查询,要求输入年份,显示日历按两列输出
提问者采纳
for(k=0;day&5+day,k=0;n&j++)
for(k=0,day)%7-+7)%7); for(i=0;
printf(&\k&Please input the year whose calen
for(k=0;); for(i=0;}这是我们当初的作业;j&lt,;),30.h&;);n|================== The Calendar of Year %d==================|\==============================================================|&quot,i;long int f(int year,
sw=++sw%7,{31;}int date[12][6][7];
wd=main(){k++)
date[i][j][k]=0,title),1),30;12;
else printf(&quot,date[i][j][k]),int month,6,31,i+1;i++) {
for(wd=0;,int month){ if(month&);
if(sw==0) wd++:5,31;3) return year-1,31;
} printf(&quot,&year);k++)
if(date[i][j][k])
&;k&lt,year),30; sw=w(
& else return month+1;4+153L*g(month)/7;);
} } puts(&quot,i+7,31;),30; char title[]=&quot,30;j++)
printf(&12,int day){ return 1461L*f(}long int g(int month){ if(month& scanf(&i&%4d&quot,31};i&lt?6,31,31;; leap=year%4==0&&year%100||year%400==0; printf(&k++)
wd+=date[i][5][k]+date[i+6][5][k];int day_tbl[ ][12]={{31,31;%d%*c&7;);3) return month+13,30;n|&7;
&quot,31}};|\}int w(int year,n|&SUM MON TUE WED THU FRI SAT&k&lt,k,28;}long int n(int year,int day){ return(int) ((n(i&i++)
for(j=0;=day_tbl[leap][i];
printf(&quot, for(i=0,30;%4d&quot:&#92,month)/n|&quot,31;
&quot,int month,j,31,date[i+6][j][k]);
else printf(&quot,29; %2d %s %2d %s|&#92,30;i++)
for(wd=0,31;day++)
date[i][wd][sw]=k++)
if(date[i+6][j][k])
printf(&quot,1;k&7,day=1;j&lt#include &lt
提问者评价
其他类似问题
日历查询的相关知识
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言问题_百度知道
com/zhidao/wh%3D450%2C600/sign=e3738dde1fc67/cf3bc7c15ea756d200baa1cd112a29.hiphotos.hiphotos./zhidao/pic/item/cf3bc7c15ea756d200baa1cd112a29.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink">求指导./zhidao/wh%3D600%2C800/sign=1dcaddacccfc1e17fdea8b/cf3bc7c15ea756d200baa1cd112a29.jpg" esrc="http://g<a href="http://g
我有更好的答案
按默认排序
printf(&}void printfhead(int m){}void printfmonth(int m){ } printf(&int isleap(int y);void printfmonth(int m):
case 10,year); for(i=1;n
if(weekday==0)
printf(&; for(i=1;i&;
weekday=(weekday+1)%7; printf(&&#92;&#92;
case 4:&i++)
printf(& scanf(&quot!=0)||y%400==0): return 31:
case 8;void main(){输入年份;&#92;: if(isleap(year))
return 29;=days:
case 5; for(i=0; printf(&int dayofmonth(int m);i&lt,i); for(i=1;n&quot,&year);n&
%d年&#92;);i++)
n+=isleap(i):
case 2;n&#92,m); printf(&
return 28:
case 11;); printf(&}int dayofmonth(int m){ switch(m) {
case 1;i&lt,days:
case 7; days=dayofmonth(m);y;=12.h&
&);n&n&i&lt!#include&%d& printfhead(m);i++) {
printf(&}int isleap(int y){ return ((y%4==0&&y%100;&#92;i++) {
printfmonth(i);n%d月
六&#92;&#92;n&#92;);}int firstday(int y){ long n=y*365; weekday=firstday(year):
case 9;int firstday(int y);weekday:
case 12; } return 0;
& printf(&quot:
case 3!代码如下~望采纳 ;;);n&quot: return 30;void printfhead(int m)!谢谢亲~这个我给编的一个日历表, return n%7;)
日历代码已经有了,我需要的是如何保存当前的全屏内容
再编写一个文件,就能保存了。
能给个代码吗?我试过了,技术不到家
其他类似问题
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用c语言编日历 日历要分两列输出 怎样分两列_百度知道
用c语言编日历 日历要分两列输出 怎样分两列
只需要怎么样分两列就行
我有更好的答案
按默认排序
1可以用输出格式&#92;%d&#92;;&#92,2)然后后面加一个表示数目的判断if(m%2==0)printf(&t%d&n吧比如连续的为1 和2 则可以printf(&t 和&#92;n&quot
其他类似问题
c语言的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
C语言编程:输入任意一个年份和月份,输出该月份的公历日历
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口《求助》我用C写了个日历 但是发现每个月的日期不对_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:279,837贴子:
《求助》我用C写了个日历 但是发现每个月的日期不对收藏
求助 有粉具体问题等下上图
#include&stdio.h& #include&stdlib.h& /*定义头文件*/int runnian(int year)/*定义变量*/{ if(year%4==0&&year%100!=0||year%400==0) /*利用函数判断输入年份是闰年还是平年*/
return 1; else
return 0;}int day1(int year,int month){ int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};/*定义数组确定12个月每个月的天数*/ if(runnian(year)) /*如果输入年份是闰年*/
a[1]=29;/*二月29天*/ return a[month-1];} int day2(int year,int month,int day) {int i,sum=0;for(i=1;i&i++); { sum+=day1(year,i);}sum+=}int week1(int year,int month,int day){// int number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+day2(year,month,day);// number%=7;int number=1;int Year_Start = 1;
//从公元一年开始int Per_Year_Days=0;
//每年所拥有的天数while(Year_Start & year)
//从公元1年开始执行while循环, 该年的一月一号为星期一{ if( runnian( Year_Start ) ) Per_Year_Days = 366;
//如果是闰年, 则一年有366天else Per_Year_Days = 365;
//如果不是闰年, 则一年有365天 number =number + Per_Year_D
//Year_days为从公元1年到输入年份的前一年的天数的总和Year_Start++; }
}char *Week2(int number){ switch(number)/*分类一周七天*/ {
return "星期日";
return "星期一";
return "星期二";
return "星期三";
return "星期四";
return "星期五";
return "星期六";
return "错误!请您重新输入。";/*不符和上面七种情况的报错提示*/ }}void x1(int year,int month,int day){ int number=week1(year,month,day)%7; if(runnian(year))printf("闰年");/*年份为闰年则输出“闰年“*/ else printf("平年"); printf(" %d 年
%d 月 %d 日%10s\n\n",year,month,day,Week2(number));/*按年 月 日输出结果*/}void x2(int year,int month){ int max,number,i,j=1; max=day1(year,month); number=week1(year,month,1)%7; printf("%12s%s%s%s%s%s%s\n"," 星期日 "," 星期一 "," 星期二"," 星期三 "," 星期四 "," 星期五 "," 星期六 ");/*按照间隔打印日历*/ for(i=0;i&i++) {
"); } while(j&=max) {
printf("%8d",j);
if(i%7==6)
printf("\n");
j++; } printf("\n\n");
}int x3(int year,int month,int day){ if(year&0||month&1||month&12||day&1||day&day1(year,month))/*当输入植出现这些情况时*/
return 0;/*返回0*/ else
return 1;/*返回1*/}
void nianli(int year){ printf("\n");
if(runnian(year))printf("闰年");
else printf("平年"); printf("\n"); printf("\n"); printf("\n");
for(i=1;i&=12;i++) {
printf(" %d 年 %d 月\n\n",year,i);
x2(year,i); }}
void yueli(int year,int month){ if(runnian(year))
printf("闰年"); else printf("平年");
printf(" %d 年 %d 月\n\n",year,month); x2(year,month);}void rili(int year,int month,int day){ printf("\n"); x1(year,month,day);}void main(){ int year,month,day,a,b; while(1) {
printf("\n\n\n\n");
**********************************************************\n\n");
欢迎进入万年历查询系统
**********************************************************\n\n\n");
1 年历 2 月历 3 日历 4 退出\n");
请输入您的选择&1~4&,按回车键确定: ");
scanf("%d",&b);
case 1:/*选择1时*/
printf("\n请输入您要查的年份: ");/*给出输入提示*/
scanf("%d",&year);/*输入查询的年份*/
a=x3(year,1,1);
printf("错误!请您重新输入。\n");/*输入植异常时报错*/
nianli(year);
case 2:/*选择二时*/
printf("\n请输入您要查的年和月,年月之间用空格隔开: ");/*给出输入提示*/
scanf("%d%d",&year,&month);/*输入需要查询的年 月*/
a=x3(year,month,1);
printf("错误!请您重新输入。\n");
yueli(year,month);
case 3:/*选择3时*/
printf("\n请输入您要查的年月日,年月日之间用空格隔开: ");/*给出输入提示*/
scanf("%d%d%d",&year,&month,&day);/*输入年 月 日*/
a=x3(year,month,day);
printf("错误!请您重新输入。\n");/*输入植异常时报错*/
rili(year,month,day);
printf("错误!请您重新输入。\n\n");
现在是我的问题
二月份的一号应该是星期四的 而不是星期一
第三个问题是(1)
输入一个年份,输出是在屏幕上显示该年的日历。(2)
输入年月,输出该月的日历。 (3)
输入年月日,输出距今天还有多少天,星期几,是否是公历节日。前面两个功能都实现了 就是第三个功能
输出距今天还有多少天,星期几,是否是公历节日。 还没有实现我
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 c语言程序设计 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信