C语言,对于首项未知的等比数列、等差数列、阶乘等运算,这样的函数是非法的?
int sum(int n){
int i,sum=0;
for(i=0;i<8;i++)
{
sum+=n;
n*=2;
}
return sum;
}
比如上面的话等比数列求和:首项是n,n是未知的变量,这样的函数是非法的?
也就是说,对C语言函数而言:
只能做1+2+4+……这样的简单运算(一般项数不固定,由实参传给它)?
不能做m+2m+4m……这样的运算吗(一般项数固定,只是m在变)?
类似的阶乘、等差数列
等等,是不是都同样的道理?
那么,对于这种计算,函数该怎么写?还是说根本没法写?只能在main()中老老实实等变量赋值之后,一次次代码实现?
结贴了:
#include <stdio.h>
#include <stdlib.h>
int sum(int n)
{
int i,sum=0;
for(i=0;i<8;i++)
{
sum+=n;
n*=2;
}
return sum;
}
int main()
{
int m,total=0; //最开始我把总和这个变量定义为int sum;没注意到,与函数名冲突了,改成total就OK了
for(m=1;m<=3;m++)
{
total=sum(m);
if(total==765)
{
printf("The fist floor has %d\n",m*128);
printf("The eight floor has %d\n",m);
break;
}
}
return 0;
}
最终确认没问题,谢谢everybody!!
[ 本帖最后由 计算机之祖 于 2015-9-8 13:55 编辑 ]