设计C语言计算1!+2!+3!+......+10!=?

我设计了一个无法运行,请大侠们看看main(){inti,n,s;s=0,n=1,i=1;while(n<=10){while(i<=n){s=s+i;i=i+1;}n=... 我设计了一个无法运行,请大侠们看看
main()
{ int i,n,s;
s=0,n=1,i=1;
while(n<=10)
{
while(i<=n)
{s=s+i;i=i+1;}
n=n+1;
}
printf("s=%d\n",s);
}
哪里不对了?
展开
 我来答
前端小子
2019-10-13 · TA获得超过7651个赞
知道答主
回答量:109
采纳率:0%
帮助的人:1.5万
展开全部

C语言计算1到10的阶乘的和的代码如下:

#include"stdio.h"

#include"math.h"

voidmain(){inti,j,n,sum=0;

for(i=1;i<=10;i++)

n=1;

for(j=1;j<=i;j++)

n*=j;

/*

将每一项阶乘相加求和。

*/

sum+=n;

printf("%d\n",sum);

本程序采用两层循环实现1到10的阶乘求和运算,使用第一层运算代表该计算式中的10项阶乘,第二层for循环表示每一项的阶乘,最后将它们求和即可实现这个运算。

扩展资料:

C语言数据类型关键字。

1、short:修饰int,短整型数据,可省略被修饰的int。

2、long:修饰int,长整型数据,可省略被修饰的int。

3、longlong:修饰int,超长整型数据,可省略被修饰的int。

4、signed:修饰整型数据,有符号数据类型。

5、unsigned:修饰整型数据,无符号数据类型。

6、restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。

7、struct:结构体声明。

8、union:联合体声明。

9、enum:枚举声明。

10、typedef:声明类型别名。

11、sizeof:得到特定类型或特定类型变量的大小。

12、inline:内联函数用于取代宏定义,会在任何调用它的地方展开。

13、auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配。与static相反。当变量未指定时默认为auto。

14、static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。

15、register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。

16、extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

17、const:指定变量不可被当前线程改变(但有可能被系统或其他线程改变)。

18、volatile:指定变量的值有可能会被系统或其他线程改变,强制编译器每次从内存中取得该变量的值,阻止编译器把该变量优化成寄存器变量。

参考资料来源:百度百科-c语言

北极雪wsy

2019-12-24 · TA获得超过16.1万个赞
知道大有可为答主
回答量:10.3万
采纳率:74%
帮助的人:9053万
展开全部
C语言计算1到10的阶乘的和的代码如下:

#include"stdio.h"

#include"math.h"

voidmain(){inti,j,n,sum=0;

for(i=1;i<=10;i++)



n=1;

for(j=1;j<=i;j++)

n*=j;

/*

将每一项阶乘相加求和。

*/

sum+=n;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
默笑狂
推荐于2018-03-01 · TA获得超过117个赞
知道答主
回答量:53
采纳率:0%
帮助的人:56.8万
展开全部

#include"stdio.h"

main()

{

double x,y=0;

int m,n;

for(n=1;n<=10;n++)

 {

  x=1;

 for(m=1;m<=n;m++)

  {

   x=x*m;

  }

  y=y+x;

 }

 printf("1!+2!+3!+......+10!=%.0lf",y);

 system("pause");

}

也可以先构造一个函数,在进行调用的。。。。。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丰韩
2012-09-06
知道答主
回答量:22
采纳率:0%
帮助的人:17.4万
展开全部
在这个程序中的有个误区,不知道你有没有看出来,其它的先不看我们现在来看嵌套的while循环:
while(i<=n)
{s=s+i;
i=i+1;
n=n+1;

}
你这个程序的结果是:1+2+3+......+10=?而不是:1!+2!+3!+......+10!=?
#include<stdio.h>
main()
{ int i,n,s;
s=0,n=1,i=1;
while(i<=10)
{ n=n*i;
s=s+n;
i=i+1;
}
printf("s=%d\n",s);
}

供你参考用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
噢无穷有
2019-06-26
知道答主
回答量:1
采纳率:0%
帮助的人:712
展开全部
这个题目用do-while语句很好理解的,你运行一下试试。

#include<stdio.h>
int main()
{
int i=1,p=1,sum=0;
do
{
p=p*i;
sum=sum+p;
i=i+1;
}while(i<=10);
printf("sum=%d\n",sum);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式