判断闰年的方法
不仅输入400结果错了,输入1600结果也是错的,想了很久都没想不到哪错了 一个int和一个float永远不会相等 BngThea 发表于 2018-3-31 17:51一个int和一个float永远不会相等
你的意思是在C语言里面 1 不等于 1.0000 吗? 本帖最后由 ba21 于 2018-3-31 20:35 编辑
#include "stdio.h"
//1、能整除4且不能整除1002、能整除4, 能整除100, 又能整除400
void main()
{
int y;
printf("判断是否为闰年小程序。\n\n");
printf("请输入年份:");
scanf("%d",&y);
if (y%4==0) //1和2: 能整除4
{
if(y%100==0)//2: 能整除100
{
if(y%400==0)//2: 能整除400
{
printf(" %d年是润年\n\n",y);
}
else
{
printf(" %d年不是润年\n\n",y);
}
}
else//1: 不能整除100
{
printf(" %d年是润年\n\n",y);
}
}
else
{
printf(" %d年不是润年\n\n",y);
}
}
ba21 发表于 2018-3-31 18:48
兄弟你的代码我看懂了,但是我还是很纠结我的代码到底哪错了…… iceforg 发表于 2018-3-31 18:57
兄弟你的代码我看懂了,但是我还是很纠结我的代码到底哪错了……
条件就是这么多。
你条件不够,就不对。
判断整除当然是求余比效好。
年份也不存在float的类型吧。
//1、能整除4且不能整除1002、能整除4, 能整除100, 又能整除400
跟据这个条件,和上面指出的问题,自已在看看吧。 ba21 发表于 2018-3-31 19:38
条件就是这么多。
你条件不够,就不对。
判断整除当然是求余比效好。
我刚刚把year改成int类型了,程序又没错了……
总之,谢谢啦 本帖最后由 iceforg 于 2018-3-31 20:07 编辑
ba21 发表于 2018-3-31 18:48
if(y>='48' & y<='57')这一行的意义是什么?? y>=0 and y<=9 吗? iceforg 发表于 2018-3-31 20:05
if(y>='48' & y=0 and y
调试用忘删了
#include "stdio.h"
//1、能整除4且不能整除1002、能整除4, 能整除100, 又能整除400
void main()
{
int y;
printf("判断是否为闰年小程序。\n\n");
printf("请输入年份:");
scanf("%d",&y);
if (y%4==0) //1和2: 能整除4
{
if(y%100==0)//2: 能整除100
{
if(y%400==0)//2: 能整除400
{
printf(" %d年是润年\n\n",y);
}
else
{
printf(" %d年不是润年\n\n",y);
}
}
else//1: 不能整除100
{
printf(" %d年是润年\n\n",y);
}
}
else
{
printf(" %d年不是润年\n\n",y);
}
}
iceforg 发表于 2018-3-31 18:40
你的意思是在C语言里面 1 不等于 1.0000 吗?
是 BngThea 发表于 2018-3-31 21:31
是
我又去试了一下,好像整型的2 ==2.0000 BngThea 发表于 2018-3-31 21:31
是
很奇怪…… iceforg 发表于 2018-3-31 22:40
很奇怪……
一个是由float强制转换的,一个是本身就是int
这两者在c里面可能有很大的差异,因为精度问题 BngThea 发表于 2018-4-1 09:35
一个是由float强制转换的,一个是本身就是int
这两者在c里面可能有很大的差异,因为精度问题
多谢大佬,明白之后舒服多了{:10_288:}
页:
[1]