想问下为什么for里面i=2和i=1都可以,i=2的话如果算2的阶乘不就是i=2++,即i=3,那结果不就是3×1=3了吗,为什么输出结果还是2呢
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
CSDN专家-link 2021-09-13 17:16最佳回答 专家已采纳i++是先用i进行运算,然后i的值再加1,不是你想的先加1,再进行运算的
采纳该答案 已采纳该答案 专家已采纳评论解决 1 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(2条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2021-09-13 17:14回答 3 已采纳 i++是先用i进行运算,然后i的值再加1,不是你想的先加1,再进行运算的
- 2021-09-13 23:38回答 3 已采纳 因为你的for循环里判断条件用了 i < n,而这个 n 又在循环体里做了运算,n 会越来越大直到溢出,i<n的条件就不会正确达成,两个地方不用同样的变量就可以了
- 2021-10-29 07:33回答 3 已采纳 咱先写出来一版,有问题再帮你看,如何
- 2021-05-25 08:27张嫂的博客 程序中for语句格式不正确,括号中的三个zhi表达式都是用分号间隔的,表示三个独立的表达,c语言中用逗号间隔尤其专门的含义。如果想把它写成一个独立的子函数的话,可以利用递归的方法:int Factorial(int n)//...
- 2022-01-12 20:56m0_63852366的博客 while循环 #include<stdio.h> int main() { int n = 0; int jc = 1; printf("请输入:");... printf("ta的阶乘是%d", jc); return 0; } for循环 int main() { int n = 0; int i = 0; int jc = 1; prin
- 2021-03-20 14:51俗集的博客 阶乘运算 题目要求 程序要读入一个非负整数n,然后输出这个整数的阶乘n!。如5!,输出5!=120。 int的范围是-2147483648~2147483647 解题思路 需要3个变量,读用户输入的n、保存计算结果的fact、计算中不断从1...
- 2020-02-20 17:33回答 1 已采纳 s = a[j] * i + c 表示a[j]位乘以阶乘的下一个数,然后加上j-1位的进位值c a[j] = s % 10 取结果的个位数作为新的第j位的值 c = s / 10 取结果的第
- 2022-02-20 11:39回答 2 已采纳 你得在第8行的for循环前面加一个,single_sum=1,不然后面的循环一直乘的前面的结果因为求了1的阶乘,就会直接按1的阶乘算2的阶乘,然后又按2的阶乘的结果算3的阶乘,后面都是继续算的,加上一
- 2021-10-31 17:03回答 1 已采纳 一个for循环就解决了,不断乘就可以!学习Linux、C/C++、数据结构和算法,可以关注我
- 2021-10-17 10:35爱养猪的人的博客 while语句 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int i, t,n; t = 1; i = 1; printf("输入你想要求得的值\n"); scanf("%d" ,&n);...for语句 #def
- 2021-03-03 20:22仰望青空的博客 for(i=1;i<6;i++) { printf("%d!=%d\n",i,fun(i)); } putchar('\n'); return 0; } int fun(int i) { static int result=1;//定义result为局部静态变量,每次调用后 result变量 内存地址未释放,故...
- 2021-05-20 16:28学术入门的博客 基本思路采用累乘的方法,乘法笔算的思路,数组记录下所有乘积的位,我写了个具体如下:#include int xcfun(int x[],int d[],int ws[],int j,int jw,int len)//模拟笔算乘法,逐位相乘{int k=0;do{x[k+j]=(ws[j]*d[k]...
- 2021-10-04 09:41回答 1 已采纳 #include <stdio.h> void cycle(int n) { int i; double s = 0; double r=1; for (
- 2021-06-03 16:42回答 4 已采纳 #include <stdio.h> int f(int n){ if(n==1) return 1; else return n*f(n
- 2021-04-22 09:18回答 5 已采纳 #include<stdio.h> int main(){ double e=1, f = 1, i=0; while (1/f>=1e-6){ i
- 2020-05-17 22:13-electronic-engineer的博客 实现N的阶乘 #include<stdio.h> int i=1,n; int answer=1; void main() { scanf("%d",&n); //输入 while(i<=n) //此处为进行循环条件 { answer=answer*i; //实现累乘 i++; } printf("%d",...
- 2021-05-19 13:22爱摄影的郭同学的博客 解题思路:利用嵌套循环计算解决问题注意事项:累加和与累乘积变量的初始化位置参考代码:#includeint main(){int i,j,n;long p,sum=0; //累加求和变量sum初始化为0scanf("%d",&n);for(i=1;i<=n;i++){p=1; ...
- 2021-05-19 14:52瓖嘉的博客 C语言编写10的阶乘,用C语言编程求10的阶乘C语言编写10的阶乘,用C语言编程求10的阶乘匿名网友:思路:先定义一个函数求一个数的阶乘,接着依次从1到10调用该函数就1到10的阶乘并输出。参考代码:#include<stdio.h&...
- 2022-05-06 07:59回答 2 已采纳 你没理解递归的含义,递归是从开始到最后执行函数,但是结果是从后往前算,最后k等于1的时候,算的是fac(1)然后就会继续算fac(2)以此类推,直到算到n,这就是迭代,你把迭代和的意思没有理解清楚。如
- 2021-05-20 15:17weixin_39853155的博客 if(n>0){ for(i=1;i;i++) f=f*i; } else if(n==0)f=1;//根据阶乘的定义 0!=1 else if(n)f=-1;//如果n为负数,则返回-1,表示错误 return f; } int main() { int n; double f;//用来存放最后的结果 printf("Input n...
- 没有解决我的问题, 去提问