十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
#include

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比邵武網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式邵武網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋邵武地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴(lài)。
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("請(qǐng)輸入一組數(shù)據(jù):");
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;
}
//*主函數(shù)*////*主函數(shù)*////*主函數(shù)*//
#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);
}
//*遞歸子函數(shù)*////*遞歸子函數(shù)*//
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);
}
}
這個(gè)子函數(shù)花了我不少時(shí)間,終于修改完成了。該程序在TC中運(yùn)行正常,符合樓主的要求。
分別取n值試運(yùn)行得到的結(jié)果如下:n=5時(shí)sum=6;n=7時(shí)sum=71;n=10時(shí)sum=2572;n=12時(shí)sum=31514 注意:當(dāng)n=13時(shí),由于整型最大數(shù)才65535,產(chǎn)生了溢出得到sum為負(fù)值。如果想擴(kuò)展其數(shù)值大小,可定義變量為long型。
如果在你的C編譯環(huán)境中無(wú)法運(yùn)行,請(qǐng)認(rèn)真調(diào)試即可。
#include
#include
float fun(int,float,float *ans);
int main()
{
int n;
float x,sum=0;
float *ans;
printf("請(qǐng)輸入N:\n");
scanf("%d",n);
printf("請(qǐng)輸入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);
}
/*
*該函數(shù)將求和多項(xiàng)式拆開(kāi),觀察每一項(xiàng),發(fā)現(xiàn)第(n+1)項(xiàng)等于
*第n項(xiàng)乘以(x/(n+1)),因此可遞歸求得求和多項(xiàng)式 中的每項(xiàng)的值,然后
*根據(jù)輸入N的值開(kāi)辟N+1數(shù)組,數(shù)組用于存放在遞歸過(guò)程中產(chǎn)生的前面項(xiàng)的值,這樣
*通過(guò)一次遞歸,便求得所有項(xiàng)的值,然后根據(jù)數(shù)組中的值進(jìn)行求和即可。
*/
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 ;
}
從低位開(kāi)始求...遞歸到高位...當(dāng)val/10==0的時(shí)候遞歸結(jié)束..
寫(xiě)的略簡(jiǎn)潔..
C語(yǔ)言:遞歸求和求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;
}
擴(kuò)展資料:
數(shù)學(xué)函數(shù)
char *ecvt(double value,int ndigit,int *decpt,int *sign),將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char *fcvt(double value,int ndigit,int *decpt,int *sign),將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char *gcvt(double value,int ndigit,char *buf),將數(shù)value轉(zhuǎn)換成字符串并存于buf中,并返回buf的指針
char *ultoa(unsigned long value,char *string,int radix),將無(wú)符號(hào)整型數(shù)value轉(zhuǎn)換成字符串并返回該字符串,radix為轉(zhuǎn)換時(shí)
double _matherr(_mexcep why,char *fun,double *arg1p,double *arg2p,double retval),用戶修改數(shù)學(xué)錯(cuò)誤返回信息函數(shù)(沒(méi)有必要使用)
unsigned int _clear87() 清除浮點(diǎn)狀態(tài)字并返回原來(lái)的浮點(diǎn)狀態(tài)
void _fpreset() 重新初使化浮點(diǎn)數(shù)學(xué)程序包
unsigned int _status87() 返回浮點(diǎn)狀態(tài)字
參考資料來(lái)源:百度百科-C語(yǔ)言函數(shù)
以整數(shù)為例。把20個(gè)數(shù)放在數(shù)組里,然后調(diào)用一個(gè)自定義遞歸函數(shù)求結(jié)果。舉例代碼如下:
//#include?"stdafx.h"http://If?the?vc++6.0,?with?this?line.
#include?"stdio.h"
int?squ_add(int?*p,int?n){//遞歸求n個(gè)數(shù)的平方和
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;
}