第一题:求类似斐波那契数列中的第n个数
桂阳网站建设公司创新互联建站,桂阳网站设计制作,有大型网站制作公司丰富经验。已为桂阳千余家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的桂阳做网站的公司定做!
先来看下什么是斐波那契数列:
指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n=3,n∈N*)
数列中的每个数,都等于前两个数字之和。第一数和第二数规定为1.
回到图中的程序,n=2时,返回2,那么就是将第一个和第二个数规定为2。
即:
fib(1)=2, fib(2)=2
根据公式:
fib(3) = fib(1)+fib(2)=2+2=4
代码的用递归实现,若不懂递归,可google之或百度之。
第二题:
main函数里的变量a,b,c都没有用上,迷惑你用的。回到d
d=f(f(3,4), f(3,5))
再看f这个函数
f(3,4) = f(x,y)=(y-x)*x=(4-3)*3=3
f(3,5) = (5-3)*3=6
因此,d=f(f(3,4), f(3,5))=f(3,6)=(6-3)*3=9
第三题 这个函数里面的赋值写法我还没见过,容我再想想。
#include stdio.h
float max(float a[])
{
int i;
float m = a[0];
for(i=1;i10;i++)
{
if(ma[i])
m = a[i];
}
return m;
}
float min(float a[])
{
int i;
float m = a[0];
for(i=1;i10;i++)
{
if(ma[i])
m = a[i];
}
return m;
}
float aver(float a[])
{
float sum = 0;
int i;
for(i=0;i10;i++)
sum += a[i];
return sum / 10;
}
int main()
{
float num[10];
int i;
for(i=0;i10;i++)
scanf("%f",num[i]);
printf("The max number is %f\n",max(num));
printf("The min number is %f\n",min(num));
printf("The average number is %f\n",aver(num));
return 0;
}
1.
楼主的x()和y()写的一样啊。
2.在x()和y()中的定义
int
x1,x2;应该改为
double
x1,x2;
3.
楼主对b*b-4*a*c0如何处理?
4.scanf("%lf,%lf,%lf",a,b,c);最好改为scanf("%lf%lf%lf",a,b,c);
建议改为下列,对于b*b-4*a*c0的情况输出提示
#includestdio.h
#includemath.h
float
d;
int
main()
{
void
x(double
x,double
y,double
z);
void
y(double
x,double
y,double
z);
double
a,b,c;
scanf("%lf%lf%lf",a,b,c);
d=b*b-4*a*c;
if(d1e-6)
x(a,b,c);
else
if(d0)
printf("没有实根\n");
else
y(a,b,c);
}
void
x(double
x,double
y,double
z)
{
double
x1,x2;
x1=(-y+sqrt(d))/(2*x);
x2=(-y-sqrt(d))/(2*x);
printf("%8.4f,%8.4f",x1,x2);
}
void
y(double
x,double
y,double
z)
{
double
x1,x2;
x1=x2=-y/(2*x);
printf("%8.4f,%8.4f",x1,x2);
}
1、写一个主函数,10个成绩放在一个数组里。
2、然后写一个求平均值的函数,返回平均值,用循环语句求和在求平均值,小学生应该都会求平均值。
3、再写一个排序算法,先模仿一个冒泡排序算法,最简单的排序算法。
这样不就三个函数了吗?,这个题主要让你初步掌握,数组,循环语句的使用,函数的调用,函数参数的传递,函数值的返回等。学习C就自己多练,多想这样会进步,代码就不写了吧,对你不好。