一道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;
}
帮忙该一下源程序 展开
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;
}
帮忙该一下源程序 展开
6个回答
展开全部
#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;
}
展开全部
#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位的编译器,是不存在溢出的。
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位的编译器,是不存在溢出的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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型,结果是没有问题的。
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型,结果是没有问题的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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整型的范围。
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整型的范围。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用长整型,不然要溢出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询