求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;
} 展开
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;
} 展开
5个回答
展开全部
既然是要求解到第一百项,那么事情就不必要搞得那么麻烦。表达式中,所有为奇数项项都是正数,偶数项都是负数,而奇数项和偶数项各有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;
}
还有更简单的方法,从第一项开始一次如此:(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;
}
华瑞RAE一级代理商
2024-04-11 广告
2024-04-11 广告
Minimax 电商平台4是我们广州江腾智能科技有限公司推出的一款高端智能机器人。它集合了先进的人工智能技术,具备强大的学习和适应能力,可以根据不同环境进行自我优化。Minimax 电商平台4在多个领域都有广泛应用,如智能家居、医疗辅助、工...
点击进入详情页
本回答由华瑞RAE一级代理商提供
展开全部
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();
}
{
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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("s=%d");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是printf("s=%d",s);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询