一道C语言题, 计算1*2*3+3*4*5+。。。。。+99*100*101

#include<stdio.h>intmain(void){intnumber,i,fac=0,p=0;printf("pleaseinpputn:");scanf("... #include <stdio.h>

int main(void)
{
int number, i, fac = 0, p = 0;

printf("please inpput n:");
scanf("%d", &number);

for (i = 1 ; i <= number ; i = i + 2)
{
p = i * (i + 1) * (i + 2);
fac = fac + p;

}

printf("sum = %d", fac);

return 0;
}
帮忙该一下源程序
展开
 我来答
爱教育爱学习
高粉答主

2019-11-13 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112726

向TA提问 私信TA
展开全部

#include"stdio.h"

intmain()

{

doublesum=0;//用double的目的是提高精度

doubleitem=0;

inti;

for(i=1;i<=99;i+=2)//步长2,各项头数是相接的,

{

item=i*(i+1)*(i+2)*1.0;

sum+=item;

}

printf("1*2*3+3*4*5+...+99*100*101=%.0lf\n",sum);

return0;

}

扩展资料

C语言编程计算1/1-1/2+1/3-1/4+……1/100的值

#include<stdio.h>

#include<stdlib.h>

intmain()

{

inti,n=100;

doublesum1=0,sum2=0,sum;

for(i=1;i<100;i=i+2)

sum1=sum1+(1.0/i);

for(i=2;i<=100;i=i+2)

sum2=sum2-(1.0/i);

sum=sum1+sum2;

printf("%lf",sum);

system("pause");

return0;

}

上了四年技校
推荐于2016-12-01 · TA获得超过242个赞
知道答主
回答量:246
采纳率:0%
帮助的人:212万
展开全部
#include <stdio.h>
int main()
{
int number, i, fac = 0;

printf("please inpput n:");
scanf("%d", &number);

for (i = 1 ; i <= number ; i = i + 2)
fac+= i * (i + 1) * (i + 2);

printf("sum = %d", fac);
return 0;
}

给你随便改了改,看起来要简洁一点,不用long类型,int已经足够了,不会溢出的,输入的时候,number要输入99。 结果:13002450。
看你的编译器了,要是用很老的TC2.0,这种16位编译器,那是要溢出,用VC(或者更先进的编译器)这种32位的编译器,是不存在溢出的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e331c80
2011-03-31 · TA获得超过229个赞
知道答主
回答量:53
采纳率:0%
帮助的人:63.4万
展开全部
#include <stdio.h>
int main(void)
{
long number, i, fac = 0, p = 0;

printf("please inpput n:");
scanf("%ld", &number);

for (i = 1 ; i <= number ; i = i + 2)
{
p = i * (i + 1) * (i + 2);
fac = fac + p;

}

printf("sum = %ld", fac);

return 0;
}
改动有三处:
1.把定义语句中的int换成了long
2.把scanf语句中的%d换成了%ld
3.把printf语句中的%d换成了%ld
执行时输入:99
回车后查看结果为:sum=13002450
一楼的thodylk 说的对,不改成long型,用int要溢出,结果为sum=26322
二楼的dcbestboy 说法不对,int main()最后后用return 0没有问题
三楼的buctears 用longlong型的方法没必要,占用空间,而且sanf和printf的格式控制有误
另外如果分开定义,把number和i定义成int型,p和fac定义成long型会出现格式转换失误的问题,结果为sum=222930
但是把number定义成int型,其他定义成long型,结果是没有问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
buctears
2011-03-31 · TA获得超过189个赞
知道答主
回答量:84
采纳率:0%
帮助的人:23.6万
展开全部
#include <stdio.h>

int main(void)
{
int number;
long long i, fac = 0, p = 0;
printf("please inpput n:");
scanf("%I64d", &number);
for (i = 1 ; i <= number ; i = i + 2)
{
p = i * (i + 1) * (i + 2);
fac = fac + p;
}
printf("sum = %I64d", fac);
return 0;
}

把fac p和i 定义为长长整型,不然会超过int整型的范围。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thodylkbc814
2011-03-31 · TA获得超过1013个赞
知道小有建树答主
回答量:943
采纳率:37%
帮助的人:322万
展开全部
用长整型,不然要溢出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式