C语言求n个数的阶乘和,使用for语句循环,一定要用套嵌for语句吗?不用套嵌的单层for可以吗,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言求n个数的阶乘和,使用for语句循环,一定要用套嵌for语句吗?不用套嵌的单层for可以吗,相关的知识,希望对你有一定的参考价值。

C语言求n个数的阶乘和,使用for语句循环,一定要用套嵌for语句吗?不用套嵌的单层for可以吗,C语言for语句

当然可以用单层循环!看——

#include "stdio.h"
int main(int argc,char *argv[])
int i,t,k,n;
printf("Please enter n(int 0<n<13)...\\n");
if(scanf("%d",&n)!=1 || n<1 || n>12)
printf("Input error, exit...\\n");
return 0;

for(k=0,t=i=1;i<=n;t*=i++,k+=t);
printf("The result is %d\\n",k);
return 0;

运行样例:

参考技术A 你把计算阶乘的算法提取到一个函数呗。 参考技术B int sum = 0;
int nj = 1;
for (int i = 1; i < n; ++i)

nj *= i;

sum += nj;

参考技术C 可以,开个数组累乘 参考技术D n个不连续的数吗? 可能需要用到数组哦

无限循环计算阶乘问题

(1) 声明用于存储阶乘结果的double型变量result,初始值为1.0。(2) 声明用于存储整数n的int型变量n,初始值为1。(3) 声明int型变量i,初始值为1。(4) 第一重循环:使用无限循环while语句,如while(1)。在第一重循坏体内完成如下内容:○1在控制台输出“请输入求阶乘中的n(1~100),输入负整数退出本程序:”,提示用户输入n。○2调用scanf()函数获取从键盘输入的n的值。○3使用if单分支语句判断n值的合法性,如果n小于0,使用break语句跳出第一重循环;如果n等于0,使用continue语句返回○1,继续循环。○4如果n值在[1,100]范围内,则先给result赋值为1.0,然后使用for语句计算阶乘(此为第二重循环),循坏过程为:循坏n次,循坏变量i从1开始,在小于等于n的情况下开始递增,每次递增需要计算。result *=i○5输出n及其对应的阶乘结果(5) 程序退出。为什么我运行的结果是这样?是n=0那里出错了吗?该怎么改正?

参考技术A 应该是1被 第一个 ch=getchar()吃掉了
改成do while试试
参考技术B 可以 参考技术C 参考技术D 第5个回答  2017-11-29 你是南方学院的吧

以上是关于C语言求n个数的阶乘和,使用for语句循环,一定要用套嵌for语句吗?不用套嵌的单层for可以吗,的主要内容,如果未能解决你的问题,请参考以下文章

C语言 求n的阶乘及阶乘和

C语言for循环 求1--10阶乘的和

C语言for循环 求1--10阶乘的和

用while语句求20的阶乘的和

matlab怎么用for语句求阶乘

怎么用while语句算5的阶乘?