| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6572 人关注过本帖
标题:求闰年算法的问题
只看楼主 加入收藏
wdy84894130
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-7-11
收藏
 问题点数:0 回复次数:11 
求闰年算法的问题

using System;

namespace 计算闰年
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
int year = 0;
int temp = 0;
Console.WriteLine("输入一个年份");
year = int.Parse(Console.ReadLine());
temp = year;
if(year%4 == 0 && year%100 != 0|| year%100 == 0 && year%400 == 0)
{
Console.WriteLine("{0}是闰年",year);

}
else
{
Console.WriteLine("{0}不是闰年",year);
while(year%4 != 0 && year%100 == 0|| (year%100 != 0 && year%400 != 0))
{
year++;

}
Console.WriteLine("下一个闰年是:{0}",year);
while(year%4 != 0 && year%100 == 0|| (year%100 != 0 && year%400 != 0))
{
temp--;
//Console.Write(temp);

}
Console.Write("上一个闰年是:{0}",temp);
Console.WriteLine();

}
}
}
}
我不知道是那里错了?谢谢大家指点下,在线等

搜索更多相关主题的帖子: 算法 闰年 
2006-07-11 23:44
月夜枫华
Rank: 4
等 级:贵宾
威 望:12
帖 子:437
专家分:42
注 册:2006-1-2
收藏
得分:0 
if(year%100==0)
{
if(year%400==0)
{
//是闰年
}
else
{
//不是闰年
}
}
eles
{
if(year%4==0)
{
//闰年
}
else
{
//不是闰年
}
}

2006-07-12 08:28
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 

[CODE]using System;
namespace 计算闰年
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
int year = 0;
int temp = 0;
Console.WriteLine("输入一个年份");
year = int.Parse(Console.ReadLine());
temp = year;
if(year%4 == 0 && year%100 != 0|| year%100 == 0 && year%400 == 0)
{
Console.WriteLine("{0}是闰年",year);
}
else
{
Console.WriteLine("{0}不是闰年",year);
while(year%4 != 0 && year%100 == 0|| (year%100 != 0 && year%400 != 0))
{
year++;

}
Console.WriteLine("下一个闰年是:{0}",year);
while(year%4 != 0 && year%100 == 0|| (year%100 != 0 && year%400 != 0))
{
temp--;
//Console.Write(temp);

}
Console.Write("上一个闰年是:{0}",temp);
Console.WriteLine();
}
}
}
}[/CODE]

楼主这句用红色标示的话应该错了
因为year在前段中已经被改变
我想楼主的原意是对year寻找上个下个闰年
用temp保存传值
那么这句话应该改为对temp的判断
[CODE]while(temp%4 != 0 && temp%100 == 0|| (temp%100 != 0 && temp%400 != 0))
{
temp--;

}[/CODE]


此号自封于2006年11月30日
2006-07-12 08:42
wdy84894130
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-7-11
收藏
得分:0 

还是不能达到目的
上下闰年找不出来
你能给个能运行的代码吗?
谢谢!

2006-07-12 20:38
wdy84894130
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-7-11
收藏
得分:0 

using System;

namespace 计算闰年
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
int year = 0;
int temp = 0;
Console.WriteLine("输入一个年份");
year = int.Parse(Console.ReadLine());
temp = year;
if((year%4 == 0 && year%100 != 0)|| year%400 == 0)
{
Console.WriteLine("{0}是闰年",year);

}
else
{
Console.WriteLine("{0}不是闰年",year);
while((year%4 != 0 || year%100 == 0)|| ( year%400 != 0))
{
year++;

}
Console.WriteLine("下一个闰年是:{0}",year);
while(temp%4 != 0 || temp%100 == 0|| (temp%100 != 0 && temp%400 != 0))

{
temp--;
//Console.Write(temp);

}
Console.Write("上一个闰年是:{0}",temp);
Console.WriteLine();

}
}
}
}
修改后的代码
但还是不能达到不是闰年的时候
找出上下一个闰年

2006-07-12 20:40
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 

using System;

namespace 计算闰年
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
int year = 0;
int temp = 0;
while(true)
{
Console.WriteLine ("--------------------------");
Console.Write("请输入要判断的年份:");
year = int.Parse(Console.ReadLine());
if(year==-1)//如果输入-1则停止计算
break;
temp = year;
Console.WriteLine ();
Console.Write("答案->");
#region//判断是否闰年 如果不是则计算上个下个闰年在什么时候
if((year%4 == 0 && year%100 != 0)|| year%400 == 0)
{
Console.WriteLine("{0}是闰年",year);

}
else
{
Console.WriteLine("{0}不是闰年",year);
while(true)
{
year++;
if((year%4 == 0 && year%100 != 0)|| year%400 == 0)
{
Console.WriteLine("下一个闰年是:{0}",year);
break;
}
}
while(true)
{
temp--;
if((temp%4 == 0 && temp%100 != 0)|| temp%400 == 0)
{
Console.Write("上一个闰年是:{0}",temp);
break;
}
}
#endregion
Console.WriteLine();
}
}
}
}
}

以上代码调试通过.
系统:WIN2003 SERVER
平台:2003.net

[此贴子已经被作者于2006-7-13 9:59:25编辑过]


此号自封于2006年11月30日
2006-07-13 09:56
zhao5195
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-6-15
收藏
得分:0 

using System;

namespace 计算闰年
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
int year = 0;
int temp = 0;
bool a=true;
bool b=true;
Console.WriteLine("输入一个年份");
year = int.Parse(Console.ReadLine());
temp = year;
if((year%4 == 0 && year%100 != 0)|| year%400 == 0)
{
Console.WriteLine("{0}是闰年",year);

}
else
{ Console.WriteLine("{0}不是闰年",year);
while(a)
{
year++;
if ((year%4 == 0 && year%100 != 0)|| year%400 == 0)
{

Console.WriteLine("下一个闰年是:{0}",year);
a=false;
}
}
while(b)
{
temp--;
if((temp%4 == 0 && temp%100 != 0)|| year%400 == 0)

{

Console.Write("上一个闰年是:{0}",temp);
b=false;
//Console.Write(temp);

}
}
Console.WriteLine();
Console.ReadLine();

}
}
}
}

这样没问题1!!!!!!!!!!!!!!!!!!!!!!!


2006-07-13 12:36
y0908d0415
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-8-13
收藏
得分:0 

using System;

namespace ConsoleApplication3
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
int i;
Console.WriteLine("please Insert:");
int n=int.Parse(Console.ReadLine());
while(n<0)
{
Console.WriteLine("输入错误,不能输入负数");
Console.WriteLine("请输入一个数求阶");
n=int.Parse(Console.ReadLine());
}
if(n%400==0||n%100!=0&&n%4==0)
{
Console.WriteLine("这个年数是闰年");
}
else
{
Console.WriteLine("这个数不是闰年");
i=n;
while(n%400!=0)
{
if(n%100!=0&&n%4==0)
{


break;
}
n++;
}
Console.WriteLine("下一个闰年是"+n);
while(i%400!=0)
{

if(i%100!=0&&i%4==0)
{
break;
}
i--;
}
Console.WriteLine("上一个闰年是"+i);
}
}
}
}

2006-08-13 10:48
y0908d0415
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-8-13
收藏
得分:0 
n--不需要 打错了
2006-08-13 15:09
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
[CODE] int year;
Console.WriteLine("輸入0退出");
do
{
year=Convert.ToInt32(Console.ReadLine());
int mod4,mod400;
if((mod4=year%4)==0&&year%100!=0||(mod400=year%400)==0)
{
Console.WriteLine("{0}是一個閏年",year);
}
else if(mod4!=0)
{
Console.WriteLine("上一個閏年是{0}",year-mod4);
Console.WriteLine("下一個閏年是{0}",year+(4-mod4));
}
else
{
Console.WriteLine("上一個閏年是{0}",year-4);
Console.WriteLine("下一個閏年是{0}",year+4);
Console.WriteLine("{0}是{1}",mod4,mod400);
}
}while(year!=0);[/CODE]

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-14 09:03
快速回复:求闰年算法的问题
数据加载中...
 
   



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

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