#include stdio.h
十年專注成都網(wǎng)站制作,成都定制網(wǎng)頁(yè)設(shè)計(jì),個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)頁(yè)設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)成都報(bào)廢汽車回收等多個(gè)方面,擁有多年的網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn)。
unsigned int func(unsigned int n)
{
return (n == 1)? 1 : n * func(n-1);
}
int main(void)
{
unsigned int n = 0, rval = 0;
printf("Input data:");
scanf("%u", n);
if (n == 0)
{
printf("Input error.\n");
return -1;
}
rval = func(n);
printf("%u!=%u\n", n, rval);
return 0;
}
你聲明的sum函數(shù)是沒有參數(shù)的,你調(diào)用時(shí),又給他了參數(shù),所以報(bào)sum函數(shù)參數(shù)調(diào)用錯(cuò)誤
另外,你的函數(shù)實(shí)現(xiàn)也有問題,修改一下:
#include?"stdio.h"
int?pl(int?n);
int?sum(int?n);
void?main()
{
int?x,y,z,m;
scanf("%d",m)
x=pl(m);
y=sum(m);
printf("x=%d\n",x);
printf("y=%d\n",y);
}
int?pl(int?n)//求1*2*3*4*..*n
{
if(n==1)
return?1;
else
return?pl(n-1)*n;?
}
int?sum(int?n)?//求1+2+3+...+n
{
if(n==1)
return?1;
else
return?sum(n-1)+n;??
}
1、首先本題的思路已經(jīng)給出,要求用遞歸算法。
2、程序源代碼如下:
#includestdio.h
int sum(int n);
int main()
{
int i=100;
printf("1~%d的和為:\n",i);
printf("%d\n",sum(100));
return 0;
}
//下面是一個(gè)遞歸求和函數(shù)
int sum(int n)
{
if (n==1)
return 1;
else
return n+sum(n-1);
}
3、程序的輸出結(jié)果如下:
#include iostream
#include iomanip
using namespace std;
int add(int n);
int main()
{
int i=100;
int b;
b=add(100);
coutbendl;
}
int add(int n)
{
if(n==1)
return 1;
else
return n+add(n-1);
},利用add()函數(shù)進(jìn)行遞歸,這是個(gè)從1加到n的遞歸函數(shù)
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;
}
擴(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),將無符號(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ù)(沒有必要使用)
unsigned int _clear87() 清除浮點(diǎn)狀態(tài)字并返回原來的浮點(diǎn)狀態(tài)
void _fpreset() 重新初使化浮點(diǎn)數(shù)學(xué)程序包
unsigned int _status87() 返回浮點(diǎn)狀態(tài)字
參考資料來源:百度百科-C語言函數(shù)
#include?"stdio.h"
int?sum(int?n){
if(n==1)
return?1;
return?n+sum(n-1);
}
int?main(void){
int?k;
while(1){
printf("Input?k(int?0k=10000)...\nk=");
if(scanf("%d",k)??k0??k=10000){
printf("The?sum?of?them?is?%d\n",sum(k));
break;
}
printf("Error,?must?be?0k=10000:?");
fflush(stdin);
}
return?0;
}