标签:递归用法
//1.使用可变参数列表实现任意个数求平均值。
/*
#include<stdio.h>
#include<stdarg.h>
int average(int data,...)//可变参数列表 函数名(类型+形参名(几个参数),...)
{
int sum=0;
int i=0;
va_list avr;//avr可随意起va_list arg;
va_start(avr,data);//va_start(arg,data);
for(i=0;i<data;i++)
{
sum+=va_arg(avr,int);//va_arg(arg,int);
}
va_end(avr);//va_end(arg);
return (float)sum/data;
}
int main()
{
int value=0;
value=average(4,2,3,4,5);
printf("平均数为:%d\n",value);
return 0;
}*/
//2.使用可变参数列表实现print("s\tc\n","bit-tech",‘w‘);
/*#include<stdio.h>
#include<stdarg.h>
void print(char *p,...)
{
char ch;
va_list arg;
va_start(arg,p);
while(*p!=‘\0‘)
{
ch=*p;
if(ch==‘s‘)
puts(va_arg(arg,char *));
else if(ch==‘\t‘)
putchar(ch);
else if(ch==‘c‘)
putchar(va_arg(arg,char));
else if(ch==‘\n‘)
putchar(ch);
p++;
}
va_end(arg);
}
int main()
{
print("s\tc\n","bit-tech",‘w‘);
return 0;
}*/
//3.编写递归函数,函数应该和下面的函数原型匹配:int hermite(int n, int x) Hn(x)={n<=0:1;n=1:2x;n>=2:2*x*Hn(n-1,x)-2*(n-1)*Hn(n-2,x);}
/*#include<stdio.h>
int hermite(int n,int x)
{
if(n<=0)
return 1;
else if(n==1)
return 2*x;
else
return 2*x*hermite(n-1,x)-2*(n-1)*hermite(n-2,x);
}
int main()
{
int n=0;
int x=0;
int ret=0;
printf("请输入n和x的值");
scanf("%d%d",&n,&x);
ret=hermite(n,x);
printf("ret=%d\n",ret);
return 0;
}
*/
//4.编写一个函数实现n^k,使用递归实现
/*#include<stdio.h>
int sf(int n,int k)
{
if(k==0)
return 1;
else
if(k>0)
{
k--;
return n*sf(n,k);
}
}
int main()
{
int n=0;
int k=0;
int ret=0;
printf("请输入n和k的值\n");
scanf("%d%d",&n,&k);
ret=sf(n,k);
printf("%d的%d次方 :%d\n",n,k,ret);
return 0;
}*/
//5. 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
/*#include<stdio.h>
int DigitSum(int value)
{
int sum=value%10;
value/=10;
if(value>0)
{
sum+=DigitSum(value);
}
return sum;
}
int main()
{
int value=0;
int ret=0;
printf("请输入一个非负整数");
scanf("%d",&value);
ret=DigitSum(value);
printf("ret=%d\n",ret);
return 0;
}*/
//6. 编写一个函数reverse_string(char * string)(递归实现)
//实现:将参数字符串中的字符反向排列。
//要求:不能使用C函数库中的字符串操作函数。
/*#include<stdio.h>
#include<string.h>
void reverse_string(char *s)
{
if(*s!=‘\0‘)
{
int len=strlen(s);
char ch=s[0];
s[0]=s[len-1];
s[len-1]=‘\0‘;
reverse_string(s+1);
s[len-1]=ch;
}
}
int main()
{
char arr[20]="jxlzr";
reverse_string(arr);
printf("%s\n",arr);
}*/本文出自 “小止” 博客,请务必保留此出处http://10541556.blog.51cto.com/10531556/1681671
标签:递归用法
原文地址:http://10541556.blog.51cto.com/10531556/1681671