❶ 用c语言函数的递归调用实现求数列1,1,2,3,5,8……..前30项之和。
递归函数如下:
首先斐波拉楔数列的前n项和递推公式为S(n)=S(n-1)+S(n-2)+1;
(根据通项公式a[n]=a[n-1]+a[n-2]很容易推导出来迟孝)
递归函烂旦碰数如下所饥谈示;
int sum_Fibonacci(int n)
{
if(1 == n)
return 1;
else if(2 == n)
rerurn 2;
else
return sum_Fibonacci(n-1)+sum_Fibonacci(n-2)+1;
}
❷ 怎样用c语言函数的方法来编程:数列1,1,2,3,5,8……,求第20 项
基本是“斐波拉契数列”最原始的是0,1,1,2,3,……
从第3项后每项的值是前两项的和。
下面用函数的递归调用求第20项的值。
——————————————————————————
#include <stdio.h>
int sn(int n);
int main()
{
int n=20;
printf("s20=%d\n",sn(n));
getch();
return 0;
}
int sn(int n) /*定义的求第n项的函数*/
{
int s;
s=n>2?sn(n-1)+sn(n-2):(n>1?2:1); /*递归调用部分,重点在这*/
return s;
}
❸ c语言问题,函数中能使用数组吗
题主的min函桐纯雀数里定义的数组没赋值,所以才会出现乱码。
解局早决方法:给tensu数组赋值,tensu[0] = x; tense[1] = y; tense[2] = z; 然后在进行比较。
或直接在min函数里进行x,y,z的比较裤搜。
❹ c语言 用函数编写Fibonacci数列问题
#include<stdio.h>
intfib(inta);
main()
{
intn;
scanf("拍拆裂%d",&n);
fib(n);
}
intfib(inta)
{
intb[100];
inti;
b[0]=1;
b[1]=1;
for(i=2;i<=a-1;i++)
b[i]=b[i-1]+b[i-2];
for(i=0;i<a;i++)袭闭//b[a]没有被赋值,不能输出它的值
{
printf("%d ",b[i]);
if((i%4)==3)//每四个换行,应该是取余为3的时候打印换行符
printf(" ");//打印御丛换行符应该在for循环里面
}
returnb[a];
}
❺ 问一道有关C语言的编程题 在主函数中输入一个数列20个整数,对从指定位置
voidinvert(int*p,intm,intn)
{intt;
n+=m-1;
for(;n<慧闷m;)
罩旁前闷弯{t=p[n];p[n++]=p[m];p[m--]=t;}
}
❻ c语言:编写函数将某数插入一组已经排好大小的数列中
你怎运洞么可以在main函数内敬烂声明insert()
去掉亮悄漏void insert();这一行
或者改成void insert(int [],int,int);
❼ C语言,编写函数计算数列
#include #define COL 10 //一行输出10个 long scan() { //输入求fibonacci函数的第N项 int n; printf("Input the N = "); scanf("%d",&n); return n; } long fibonacci(int n) { //fibonacci函数的递归函数 if (0==n||1==n) { //fibonacci函数递归的出口 return 1; } else { return fibonacci(n-1)+fibonacci(n-2); //反复递归自身函数直到碰到出口处再返回就能计算出第n项的值 } } int main(void) { int i,n; n = scan(); printf("Fibonacci数列的前%d项\n", n); for (i=0; i
❽ 可以在C语言子函数中定义数组吗
可以,但是定义的数组的作用域仅在本函数中,调用函数不可用
❾ 谁能给我一个用C语言写的等差数列函数
int fun(int a){ int b[9],i,j,k=0; //10个数字之间的差共有9个所以b数组为9 j=a[1]-a[0]; //现确定下等差 for(i=0;i<9;i++) b[i]=a[i+1]-a[i]; //将a数组中的前后两项的数的差值存入b数组中 for(i=0;i<9;i++){ if(j==b[i]) //判断b数组中的数是否于开始确定的差值相等 k++; } if(k==9) //判断是否所有的差值都相等 return 1;elsereturn 0;}main(){ int a[10],i,j; for(i=0;i<10;i++) scanf("%d",&a[i]); //输入10个数字 j=fun(a); //调用函数fun if(j==1) printf(" yes\n"); else printf(" no\n");}你没说要判断的数列是多长我自己定义了10个,你可以自己改。
❿ c语言中可以使用char[]={'a','b','c'}这样的数列函数吗
可以。。这么写不报错