标题:大家好,新手学C,遇到难题。
只看楼主
天宇学C
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-6
结帖率:0
已结贴  问题点数:20 回复次数:4 
大家好,新手学C,遇到难题。
我用WHILE循环嵌套做的求10的阶乘和 1!+2!+。。。。10!,不知道哪里出了问题,连1!+2!都算错 求大家帮忙
#include<stdio.h>
int main()
{
int n;
int u=10;
long i=1;
long x=0;
while(u>=1)
{n=1;
while(n<=u)
{
i=n++*i;
}
x=x+i;
u--;
}
printf("%ld",x);
return 0;
}
2017-04-06 16:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
因为你不走寻常路
比如 i 这个变量只在while循环中使用,你却要将它定义在外面。
2017-04-06 16:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
假如你用的是标准的C编译器
可以试试这段代码
程序代码:
#include <stdio.h>

int main( void )
{
    unsigned result = 0;
    for( unsigned i=1,p=1; i<=10; ++i )
    {
        p *= i;
        result += p;
    }
    printf( "%u\n", result );

    return 0;
}
//1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=4037913


2017-04-06 16:27
天宇学C
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-6
得分:0 
回复 2楼 rjsp
谢谢你,一语中的啊!我怎么看也没看出问题···
2017-04-06 16:29
天宇学C
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-6
得分:0 
回复 3楼 rjsp
谢谢你!
2017-04-06 16:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475835-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.409939 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved