求1-2+3-4+5-6+7+…+99-100 C语言编程 下面程序哪里错了

#include<stdio.h>main(){inta,s=0;for(a=1;a<100;a++){if(a%2==0)s=s-a;continue;if(a%2!=... #include <stdio.h>
main()
{
int a,s=0;
for(a=1;a<100;a++)
{if(a%2==0)
s=s-a;
continue;
if(a%2!=0)
s=s+a;
continue;}
printf("s=%d");
return 0;
}
展开
 我来答
Mr_Yang2012
2012-11-12 · TA获得超过1647个赞
知道小有建树答主
回答量:392
采纳率:0%
帮助的人:492万
展开全部
既然是要求解到第一百项,那么事情就不必要搞得那么麻烦。表达式中,所有为奇数项项都是正数,偶数项都是负数,而奇数项和偶数项各有50项我们不妨利用等差数列求和公式,分别求出奇数项和偶数项绝对值的和。再用奇数项绝对值的和减去偶数项绝对值的和即可。
还有更简单的方法,从第一项开始一次如此:(1-2) + (3-4) +(5-6) +....+ (99-100) ,发现如果将每个括号看作一项,那么每项都是-1 ,一共有50项,那么结果就很明显了,是 -50 。
那么将结论推广一下,对于n项的这个算式的结果求解,如果n为偶数,那么结果就是 -(n/2),若n为奇数,那么结果就是 n - n/2(n/2向下取整)
那么对于任意项数n的算式求解代码:
#include <stdio.h>

int main(void)
{
int n;
int sum;

scanf("%d", &n);

if (n % 2 == 0)
{
sum = n / 2 * -1;
printf("%d\n", sum);
}
else
{
sum = n - n / 2;
printf("%d\n", sum);
}

return 0;
}
一路的泪
2012-11-12 · TA获得超过562个赞
知道小有建树答主
回答量:673
采纳率:0%
帮助的人:253万
展开全部
void main ()
{
int s = 0;
for(int i =0;i<101;i++) //输出0-100个数
{
if(i%2 != 0) //当i为奇数时
{
s = s - i;
else
//当i为偶数时
s = s + i;
}
printf("%d\n",s);
s=s; //这里要记住s ,不知道需要不需要,自己试试。
}
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匡匡干
2012-11-12 · TA获得超过420个赞
知道小有建树答主
回答量:319
采纳率:0%
帮助的人:269万
展开全部
#include <stdio.h>
main()
{
int a,s=0;
for(a=1;a<100;a++) //应为a<=100
{if(a%2==0)
{ //括起来,下面同理,或者就直接去掉continue
s=s-a;
continue;
}
if(a%2!=0)
{
s=s+a;
continue;
}
}
printf("s=%d"); //printf("s=%d", s);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yht229
2012-11-12 · TA获得超过123个赞
知道答主
回答量:301
采纳率:0%
帮助的人:113万
展开全部
printf("s=%d");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呵呵_哈哈day
2012-11-12 · 超过11用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:25.9万
展开全部
应该是printf("s=%d",s);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式