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

#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;
}
帮忙该一下源程序

#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;

}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-12-01
#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位的编译器,是不存在溢出的。本回答被提问者采纳
第2个回答  2011-03-31
#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型,结果是没有问题的。
第3个回答  2011-03-31
#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整型的范围。
第4个回答  2011-03-31
用长整型,不然要溢出。

C语言编程计算1*2*3+3*4*5+...+99*100*101的值
int main(){ int sum=0;int i=1, j=2, k=3;while(i<100){ sum+=i*j*k;i+=2;j+=2;k+=2;} printf("The sum is:%d\\n", sum);}

1*2*3+3*4*5+...+99*100*101
应该定义为unsigned long 后三项就是1百万了

1*2*3+3*4*5+...+99*100*101
1. 使用大整数,实质上是用字符来描述数字,这个大整数自己去实现 2. 分段操作和计算,超过int(double)等上线时转换为字符

一道C语言题, 计算1*2*3+3*4*5+。。。+99*100*101
{ 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;} ...

编程计算1×2×3+3×4×5+···+99×100×101的值
\/\/C语言:include<stdio.h> void main(){ int i;int res=0;for(i=1;i<101;i+=2){ res+=i*(i+1)*(i+2);} printf("%d\\n",res);} 是啊,确实少了一个加号.呵呵!而且res也没有初始化, 好久没用C语言了... 有些不太习惯啊....

c语言编写计算1*2*3+3*4*5+….+99*100*101
第一层循环完后才退出。展开后为:第1次循环:n = i*j*k = 1*2*3 第2次循环:n = i*j*k = 1*2*5 第3次循环:n = i*j*k = 1*2*7 ……第50次循环:n = i*j*k = 1*2*101 第51次循环:n = i*j*k = 1*4*3 第52次循环:n = i*j*k = 1*4*5 ……...

编程计算:1X2X3+3X4X5……+99X100XI01
C语言编写的程序,计算1X2X3+3X4X5……+99X100XI01的值。include <stdio.h>int main() { int sum = 0; for (int i = 1; i < 101; i+=2) { sum += i * (i+1) * (i+2);} printf("1X2X3+3X4X5……+99X100XI01=%d", sum); return 0;} ...

用C语言解决1*2*3+3*4*5+5*6*7+……99*100*101(具体程序)
int a = 0, b = 1, c = 2, d = 3;\/\/结果a,初始值b,c,d int e,f,g,h;\/\/过程值e,f,g,h while (b<=99){ e = b * c * d;f=b+2;g=c+2;h = d + 2;b = f;c = g;d = h;a+=e;} Console.WriteLine("1*2*3+3*4*5+5*6*7+……+99*100*101...

1*2*3+2*3*4...+99*100*101=?
因为(n-1)*n*(n+1)=n^3-n 所以 1*2*3+2*3*4…+99*100*101 =2^3+3^3+4^3+…+100^3-2-3-4-…- 100 =1^3+2^3+3^3+4^3+…+100^3-1-2-3-4-…- 100 =(100*101\/2)^2-5050 =25497450 ( 因为^3+2^3+3^3+4^3+…+n^3=(n*(n+1)\/2)^2)...

C语言编程 1*2+2*3+3*4+...+100*101
include"stdio.h"main(){ int i;long sum=0;for(i=1;i<=100;i++)sum+=i*(i+1);printf("%ld",sum);} 一共两处修改:一个是把int改为long ,另一个是输出的时候应该用%ld而不是%d。建议你好好看看整形和长整形的范围以及它们的输出形式!

相似回答