经典闰年题,小弟自己编了个程序,请大虾帮忙分析下!

quan00783 2011-02-06 12:55:25
题目:判定2000——2500年中的每一年是否闰年,将结果输出。
算法:S1:2000→y
S2:若y不能被4整除,则输出y“不是闰年”。然后转到S6
S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后转到S6
S4:若y能被100整除,又能被400整除,输出y“是闰年”,然后转到S6
S5:输出y“不是闰年”
S6:y+1→y
S7:当y<=2500时,转S2继续执行,否则算法停止。
小弟想把是闰年的输出,不是闰年的没考虑,编写的程序如下:
#include <stdio.h>

void main()
{
int y;
for(y=2000;y<=2500;y++)
{
if(y/4==0 && y/100!=0)
printf("%d is run nian.",y);
if(y/100==0 && y/400==0)
printf("%d is run nian.",y);
}
}
经过编译调试,都没有报错,但输出却没有结果。
请大虾帮忙看下程序,帮小弟分析指点下啊!
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
character_w 2011-02-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhzxlc_06 的回复:]
printf(year%(year%100?4:400)?"No":"Yes");
[/Quote]
quan00783 2011-02-06
  • 打赏
  • 举报
回复
谢谢各位大虾的指点,小弟确实搞错了,应该用取模%而不是除/,改过来程序就调试成功啦~
2楼的大哥,小弟刚学程序设计,只知道点C,还不会C++,我会努力的,谢谢指点。
3楼大哥你指点的很正确,小弟改过程序了。我知道if和else if是配套使用,但我编写的这个程序判定是否是闰年的这两种情况是并列关系,所以没用互斥关系的if和else if语句
4楼大哥指点的是,小弟学习啦~
5楼大哥,你写的这个小弟还没看懂,小弟刚学,好像是条件判定语句,是吧?一句程序就抵我这一段,佩服!
ww884203 2011-02-06
  • 打赏
  • 举报
回复
应该用求余吧。。。
chaoliu1024 2011-02-06
  • 打赏
  • 举报
回复
printf(year%(year%100?4:400)?"No":"Yes");
有点笨 2011-02-06
  • 打赏
  • 举报
回复
童鞋,整除是余数为0,不是商为0,应该用%,不是/,
还有S4判断是否能被400整除就行了,能被400整除肯定也能被100整除啊
iambic 2011-02-06
  • 打赏
  • 举报
回复
1. 除法和取余操作弄混了:/ => %
2. 互斥情况尽量配对使用if...else...
masmaster 2011-02-06
  • 打赏
  • 举报
回复
[code]
#include <stdio.h>
#include <stdbool.h>

int year;
bool leapFlag;
bool leapYear (void);

int main (void) {

for(year=2000;year<=2500;year++) {

if(leapYear()==true) {

printf ("%i is leap year!\n",year);

// }else{

// printf ("%i is not leap year!\n",year);

}

}

return 0;

}

bool leapYear (void) {

if(( year%4==0 && year%100!=0 )||year%400==0) {

leapFlag=true;

}else{

leapFlag=false;

}

return leapFlag;

}
[code]
masmaster 2011-02-06
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdbool.h>

int year;
bool leapFlag;
bool leapYear (void);

int main (void) {

for(year=2000;year<=2500;year++) {

if(leapYear()==true) {

printf ("%i is leap year!\n",year);

// }else{

// printf ("%i is not leap year!\n",year);

}

}

return 0;

}

bool leapYear (void) {

if((year%4==0 && year%100!=0)||year%400==0) {

leapFlag=true;

}else{

leapFlag=false;

}

return leapFlag;

}

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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