c语言编程 从第一行重复,C语言编程,2000到3000找出闰年,每十个年号换一行,第一个换行没成功,网上是第二个结果正确,为什么呢...

C语言编程,2000到3000找出闰年,每十个年号换一行,第一个换行没成功,网上是第二个结果正确,为什么呢

答案:3  信息版本:手机版

解决时间 2018-12-17 06:09

已解决

2018-12-16 13:56

C语言编程,2000到3000找出闰年,每十个年号换一行,第一个换行没成功,网上是第二个结果正确,为什么呢

最佳答案

2018-12-16 15:20

if()

{

。。。。

}

判断成立后运行花括号中所有的语句

如果不用括号括起来

那么 判断完之后,就只运行 紧接着的那一句

程序一:

等效代码

void main()

{

int i,n=0;

for(i=2000;i<=3000;i++)

{

if(i%4==0&&i%100!=0||i%400==0){printf("%5d",i);}

n++;

if(n%10==0)

printf("

");

}

}失败的原因是if后面没有括号,那么每次循环n都会增加1

都会判断打印换行

最终就是如果是闰年就打印年份,每十年就换一次行

可以预见其结果将会是

2000 2004 2008

2012 2016 2020

2024 2028

2032 2036 2030

........

而程序二的k在判断闰年的括号内,每次闰年k才增加1

但是判断是否满10个闰年,打印回行是在括号外的,没次循环都会执行

每是个闰年输出4个换行,所以也是不对的

可以预见其结果是

2000 2004 2008 2012 2016 2020 2024 2028 2032 2036

2040 2044 .....

......

正确的做法是:

main()

{

int i,k=0;

for(i=2000;i<=3000;i++)

{

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

{

printf("%5d",i);

k++;

if(k%10==0)

printf("

");

}

}

}

正确的做法应该将

printf("%5d",i);

k++;

if(k%10==0)

printf("

");都放在if(i%4==0&&i%100!=0||i%400==0)语句的后后边的括号内

程序一,错在if(i%4==0&&i%100!=0||i%400==0)后面没有括号

相当于只用括号括住printf("%5d",i);这一句

程序二,错在虽然为if(i%4==0&&i%100!=0||i%400==0)添加了括号

但是括的内容不够,只有printf("%5d",i);k++;两句

全部回答

1楼

2018-12-16 16:25

#includemain()

{

int i,k=0;

for(i=2000;i<=3000;i++)

{

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

{

printf("%5d",i);

k++;

}

if(k%10==0)

printf("

");

}

}

这个就对了,注意括号。一定要小心一些。追问

放在括号里 是这样子  为什么呢 能否帮我分析一下 特别感谢你

2楼

2018-12-16 15:44

不放在花括号外面的话,每找到一个闰年都会换行追问

放在花括号里面 运行出来是这个   能否帮我分析一下为什么在里面是这样的呀 特别感谢你追答

放在括号内,没找到一个闰年就判断是否换行,放在括号外,当没有找到闰年的时候也会换行,你运行的结果的代码不知道是怎么样的,我运行的跟你的不一样:

括号内的:

第一个换行没成功是因为你的n不是在记录闰年的个数,if语句不加括号的时候只对后面一个语句起作用,对于多个语句,需要使用花括号括起来,我觉得你应该是这里没有搞清楚,所以觉得n++这一句在if里面是吧,其实不是的,你的第一个没有起作用,就是因为n++不在if语句里面了。

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值