fac=fac( +(i==1?0:1));
被忽悠了,这回对了
迭代计算,fac是中间变量,初始化fac=1.0,i从1到n,自然就要fac要自增,但当i=1时,fac不增加,当i>1,fac+1在赋值给fac;
double fun (int n)
{
double s=0.0,fac=1.0;int i;
for(i=1,i<=n;i++)
{
fac=( i==n?n:i ); //这是个条件运算,俗称散布运算符,即:i是否等于n,如果等于曾
//则返回n,如果不等于则返回 i ;
s=s+fac;
}
returns;
}
fac是中间变量,初始化fac=1,然后随着i递增到n,这样s就是1到n的和了~~
+i-1;
fac初始为1,i又是从1开始,所以每次加i后要减1,这样才是从1开始
程序太麻烦,可以简单一些
double s = 0;
int i;
for (i=1; i<=n; i++)
{
s+= i;
}
return s;
不好意思,答案填错