|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int jie(int n)
- {
- static int f = 1;
- f = f * n;
- return(f);
- }
- void main()
- {
- int i = 1;
- int n;
- while (1)
- {
- printf("输入你要求到几的阶乘。\n");
- scanf_s("%d", &n);
- for (;i <= n;i++)
- {
- printf("%d! = %d\n", i, jie(i));
- }
- i = 1;
- }
- }
复制代码
看懂lz的意思了,因为使用了static关键字导致f的值一直延续,这里提供一个思路,向函数中加一个参数,如果是0则f不变,如果是1那么就把f的值设置为1,每次计算阶乘后可以调用,修改后的参考代码(这里没有测试):
- #include <stdio.h>
- int jie(int n, int x)
- {
- static int f = 1;
- if (x == 1) f = 1;
- f = f * n;
- return(f);
- }
- void main()
- {
- int i = 1;
- int n;
- while (1)
- {
- printf("输入你要求到几的阶乘。\n");
- scanf_s("%d", &n);
- for (;i <= n;i++)
- {
- printf("%d! = %d\n", i, jie(i,0));
- }
- jie(1,1);
- i = 1;
- }
- }
复制代码
|
|