大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include
创新互联-专业网站定制、快速模板网站建设、高性价比邵武网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式邵武网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖邵武地区。费用合理售后完善,10多年实体公司更值得信赖。
stdio.h
#include
stdlib.h
int
b=0;
int
sum(int
*a,int
n)
{
int
temp;
if(0==n)
return
0;
else
{
temp=sum(a,n-1);
b=b+a[n-1];
}
return
b;
}
int
main
(void)
{
int
i;
int
a[6]={0};
printf("请输入一组数据:");
for(i=0;i=5;i++)
{
scanf("%d",a[i]);
}
printf("\n\n");
printf("所有元素之和num=%d",sum(a,6));
printf("\n\n");
system("PAUSE");
return
0;
}
//*主函数*////*主函数*////*主函数*//
#includestdio.h
void main()
{
int n;int sum_(int n);long sum=0;
printf("please enter a number=");
scanf("%d",n);
sum=sum_(n);
printf("The square sum is %d\n",sum);
}
//*递归子函数*////*递归子函数*//
int sum_(int n)
{
int a[100];int i;int s=0;
if(n==1||n==2)
return 0;
else if(n==3)return 1;
else
{ a[1]=0;a[2]=0;a[3]=1;
for(i=4;i=n;i++)
{
a[i]=a[i-1]+a[i-2]+a[i-3];
s=sum_(i-1)+a[i]*a[i];
}
return(s);
}
}
这个子函数花了我不少时间,终于修改完成了。该程序在TC中运行正常,符合楼主的要求。
分别取n值试运行得到的结果如下:n=5时sum=6;n=7时sum=71;n=10时sum=2572;n=12时sum=31514 注意:当n=13时,由于整型最大数才65535,产生了溢出得到sum为负值。如果想扩展其数值大小,可定义变量为long型。
如果在你的C编译环境中无法运行,请认真调试即可。
#include
#include
float fun(int,float,float *ans);
int main()
{
int n;
float x,sum=0;
float *ans;
printf("请输入N:\n");
scanf("%d",n);
printf("请输入X(float):\n");
scanf("%f",x);
ans=(float *)malloc((n+1)*sizeof(float));
fun(n,x,ans);
for(int i=1;i!=(n+1);i++)
{
sum+=*(ans+i);
}
printf("求得和为:%f\n",sum);
free(ans);
}
/*
*该函数将求和多项式拆开,观察每一项,发现第(n+1)项等于
*第n项乘以(x/(n+1)),因此可递归求得求和多项式 中的每项的值,然后
*根据输入N的值开辟N+1数组,数组用于存放在递归过程中产生的前面项的值,这样
*通过一次递归,便求得所有项的值,然后根据数组中的值进行求和即可。
*/
float fun(int n,float x,float *ans)
{
if(n==1)
{
*(ans+n)=x;
return x;
}else{
*(ans+n)=(x/(n))*fun(n-1,x,ans);
return *(ans+n);
}
}
int func(int val) {
return val0? ((val%10)*(val%10)+func(val/10)) : 0 ;
}
从低位开始求...递归到高位...当val/10==0的时候递归结束..
写的略简洁..
C语言:递归求和求f(n)的值可以采用以下的代码:
#includestdio.h
int sum(int n)
{
if(!n)
return 0;
else
return n + sum(n - 1);
}
int main()
{
int n;
scanf("%d",n);
printf("%d\n",sum(n));
return 0;
}
扩展资料:
数学函数
char *ecvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串
char *fcvt(double value,int ndigit,int *decpt,int *sign),将浮点数value转换成字符串并返回该字符串
char *gcvt(double value,int ndigit,char *buf),将数value转换成字符串并存于buf中,并返回buf的指针
char *ultoa(unsigned long value,char *string,int radix),将无符号整型数value转换成字符串并返回该字符串,radix为转换时
double _matherr(_mexcep why,char *fun,double *arg1p,double *arg2p,double retval),用户修改数学错误返回信息函数(没有必要使用)
unsigned int _clear87() 清除浮点状态字并返回原来的浮点状态
void _fpreset() 重新初使化浮点数学程序包
unsigned int _status87() 返回浮点状态字
参考资料来源:百度百科-C语言函数
以整数为例。把20个数放在数组里,然后调用一个自定义递归函数求结果。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int squ_add(int *p,int n){//递归求n个数的平方和
if(--n==0)
return p[n]*p[n];
return p[n]*p[n]+squ_add(p,n);
}
int main(void){
int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
printf("The result is %d\n",squ_add(a,20));
return 0;
}