c语言 求1到100以内的偶数之和

如题所述

答:一.临界考虑错误...
考虑当·i·等于98的结束后··
··这个循环里面的b是为99····
·然后i
+=2
··让i
=
100···
  ·继续往下走····if·语句判断时····b还是99··所以运行b=i+1;也就是赋值b=101···
然后·c就是多加了这个101!
  二.··如果把0算上的话··从0到100偶数为51个···而从0到100的奇数为50个···
程序里面就要判断,
不利于for循环的连续性····
所以
for循环里面的内容更改如下:
for(i
=
2;
i
<=
100;
i
+=
2)
{
a
+=
i;
b
=
i
-
1;
c
+=
b;
}
答:你b=i+1,i=100时,b就是101了,多加个101肯定错了…
#include
<stdio.h>void
main(){
int
a,b,c,i;
a=0;b=1;c=0;
for(i=0;i<=100;i+=2)
{
a+=i;
if(b<=99)
b=i+1;
c+=b;
}
printf("sum
of
evens
is
%d\n",a);
printf("sum
of
odds
is
%d\n",c);}为什么奇数之和是2601,而不是2500
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-13
答:一.临界考虑错误...
考虑当·i·等于98的结束后··
··这个循环里面的b是为99····
·然后i
+=2
··让i
=
100···
  ·继续往下走····if·语句判断时····b还是99··所以运行b=i+1;也就是赋值b=101···
然后·c就是多加了这个101!
  二.··如果把0算上的话··从0到100偶数为51个···而从0到100的奇数为50个···
程序里面就要判断,
不利于for循环的连续性····
所以
for循环里面的内容更改如下:
for(i
=
2;
i
<=
100;
i
+=
2)
{
a
+=
i;
b
=
i
-
1;
c
+=
b;
}
答:你b=i+1,i=100时,b就是101了,多加个101肯定错了…
#include
<stdio.h>void
main(){
int
a,b,c,i;
a=0;b=1;c=0;
for(i=0;i<=100;i+=2)
{
a+=i;
if(b<=99)
b=i+1;
c+=b;
}
printf("sum
of
evens
is
%d\n",a);
printf("sum
of
odds
is
%d\n",c);}为什么奇数之和是2601,而不是2500
相似回答