万年历谁帮我找找错

WUBIGQI 2020-01-08 03:38:51
日期对不上 #include <stdio.h>; #include <stdlib.h>; int year,month,day; int run[12]={31,29,31,30,31,30,31,31,30,31,30,31}; int ping[12]={31,28,31,30,31,30,31,31,30,31,30,31}; char weekday[7][10]={"一","二","三","四","五","六","日"}; void printStar() { printf("*****************************************************\n"); } void printBegin() { printf("\t\t\t万年历\t\t\t\n"); printStar(); for (int i=0;i<7;i++) { printf("%s\t",weekday[i]); } printf("\n"); } int leap(int year) { int four,hundred,fourhundred; four=year%4; hundred=year%100; fourhundred=year%400; if (four==0&&hundred==0&&fourhundred==0) { return 1; } else if(four==0&&hundred!=0&&fourhundred!=0) { return 1; } return 0; } int daySum(int year,int month,int day,int run[],int ping[]) { int i,sum=0; for (i=1900;i<=year;i++) { int m=leap(year); if(m==1) { sum+=366; } else { sum+=365; } } for (i=0;i<month-1;i++) { if(leap(year)==1) { sum=sum+run[i]; } else { sum=sum+ping[i]; } } return sum; } void printResult(int sum,int year,int month) { int result,temp,i; result=sum%7; for (i=0;i<result;i++) { printf("\t"); } temp=7-result; if (leap(year)==1) { for(i=1;i<=run[month-1];i++) { printf("%d\t",i); if (i==temp||(i-temp)%7==0) { printf("\n"); } } } else { for(i=1;i<=ping[month-1];i++) { printf("%d\t",i); if (i==temp||(i-temp)%7==0) { printf("\n"); } } } printf("\n"); } int main() { printf("请输入年,月,日:"); scanf("%d%d%d",&year,&month,&day); printBegin(); int sum=daySum(year,month,day,run,ping); printResult(sum,year,month); printStar(); system("pause"); return 0; }
...全文
123 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
可参https://bbs.bccn.net/viewthread.php?tid=497774&page=1&extra=#pid2716985
WUBIGQI 2020-01-09
  • 打赏
  • 举报
回复
引用 1 楼 寻开心的回复:
int daySum(int year,int month,int day,int run[],int ping[])
{
int i,sum=0;
for (i=1900;i<year;i++)
{
int m=leap(year);

看改正的这里,原来代码是<= 那样就多加了一年

#include 《stido.h》 尾部不应该有分号
谢谢啦 这么小的错误都看到了 辛苦了
寻开心 2020-01-08
  • 打赏
  • 举报
回复
leap的判断也太啰嗦了, 不过这些小毛病慢慢优化吧
寻开心 2020-01-08
  • 打赏
  • 举报
回复
int daySum(int year,int month,int day,int run[],int ping[])
{
int i,sum=0;
for (i=1900;i<year;i++)
{
int m=leap(year);

看改正的这里,原来代码是<= 那样就多加了一年

#include 《stido.h》 尾部不应该有分号

65,192

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧