c源程序救急,谁能告诉我这个程序错在哪了?1到100奇数和与偶数和!
来源:百度知道 编辑:UC知道 时间:2024/05/18 09:43:58
#include<stdio.h>
main()
{
int n,sum=0;
printf("\n");
for(n=1;n<=100;n++)
if((n%2)==0)
sum+=n;
printf("2+4+6+...+100=%d\n",sum);
if((n%2)==1)
sum+=n;
printf("1+3+5+...+99=%d\n",sum);
return 0;
}
运行结果:
2+4+6+...+100=2550
1+3+5+...+99=2651
这是怎么回事啊?如果交换下if的顺序运行结果又是
1+3+5+...+99=2500
2+4+6+...+100=2500
我都快头痛死了,到底是怎么搞的嘛?我用的是turbo C 2.01
main()
{
int n,sum=0;
printf("\n");
for(n=1;n<=100;n++)
if((n%2)==0)
sum+=n;
printf("2+4+6+...+100=%d\n",sum);
if((n%2)==1)
sum+=n;
printf("1+3+5+...+99=%d\n",sum);
return 0;
}
运行结果:
2+4+6+...+100=2550
1+3+5+...+99=2651
这是怎么回事啊?如果交换下if的顺序运行结果又是
1+3+5+...+99=2500
2+4+6+...+100=2500
我都快头痛死了,到底是怎么搞的嘛?我用的是turbo C 2.01
明显是程序有问题。
for循环仅仅对前面的起作用。
而且对sum进行了重复操作,逻辑混乱。
#include<stdio.h>
main()
{
int n,sum1=0,sum2=0;
printf("\n");
for(n=1;n<=100;n++)
{
if((n%2)==0)
sum1+=n;
else if((n%2)==1)
sum2+=n;
}
printf("2+4+6+...+100=%d\n",sum1);
printf("1+3+5+...+99=%d\n",sum2);
return 0;
}
213123