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

我设计了一个无法运行,请大侠们看看
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);
}
哪里不对了?

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语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-24
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;
第2个回答  推荐于2018-03-01

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

}

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

本回答被提问者和网友采纳
第3个回答  2012-09-06
在这个程序中的有个误区,不知道你有没有看出来,其它的先不看我们现在来看嵌套的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);
}

供你参考用。
第4个回答  2019-06-26
这个题目用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;
}