| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 529 人关注过本帖
标题:请大家帮我看看这个程序(能运行)哪里出问题了?
取消只看楼主 加入收藏
a874695162
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2014-7-21
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:1 
请大家帮我看看这个程序(能运行)哪里出问题了?
/*输入年月日,输出这是该年的第几天,尚未添加输入错误判断功能*/

#include "stdafx.h"
#define Y p->year
#define M p->month
#define D p->day
#include<iostream>
#include<cmath>
using namespace std;
bool judge(int);
int add(int);
struct date
{int year;
int month;
int day;
};
int main()
{date * p;
p=new date;
cout<<"输入年,月,日"<<endl;
cout<<"年:"<<endl;
cin>>Y;
cout<<"月:"<<endl;
cin>>M;
cout<<"日:"<<endl;
cin>>D;
int count=0,i;
bool T=judge(Y);//判断该年是否为闰年,若是则T为true
 for(i=1;i<=(M-1);i++)//此处循环的作用是当月份为2时,根据T的情况给count加相应的天数
 {if(i==2)
 {if(T)count=count+29;
 else count=count+28;}
   
 }
 count=count+add(M)+D;//天数=二月份的天数+其他完整的月份的天数+剩余的天数
 cout<<"您输入的日期是"<<Y<<"年的第"<<count<<"天"<<endl;
 delete p;
 return 0;
}
int add(int k)
{int count=0,i;
for(i=1;i<=k-1;i++)//一月至七月每隔一月是31天,八月至十二月每隔一月是31天
{if(i<=7)
  if((i%2==0)&&(i!=2))count=count+30;
  else count=count+31;
else
  if((i-7)%2==0)count=count+30;
  else count=count+31;
}
return count;
}
bool judge(int t)
{
    bool T=false;
    if((abs(2004-t)%4==0)T=true;//2004年是闰年,那么和它相差4年的年份就应该是闰年
    return T;
}
输入2008 3 1
输出:“您输入的日期是2008年的第92天”
显然错误,请问错在哪里?
搜索更多相关主题的帖子: include 年月日 count 
2014-08-15 14:48
a874695162
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2014-7-21
收藏
得分:0 
回复 3 楼 wp231957
多谢!你的算法要比我的好很多。
把闰年判断方法改了之后还是有误,应该还有别的问题,我将努力找出错误。

加油,再加油!编程,再编程!
2014-08-15 16:28
快速回复:请大家帮我看看这个程序(能运行)哪里出问题了?
数据加载中...
 
   



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

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