C语言练习第4天---输出斐波那契数列(循环,数组,函数)

题目:编写程序,分行输出斐波那契Fibonacci数列的前20项(每行5个数) 说明:斐波那契数列:1,1,2,3,5,8,13,21...

观察得后一个数等于前两个数之和

//方法1:循环
#include<stdio.h>
int main() 
{
  int i,a,count,sum;//定义4个整型变量
  i=1;
  a=1;
  printf("%d\t%d\t",i,a);//输出第一个,第二个数 
  for(count=3;count<=20;count++)//控制输出个数 
  {
  		sum=i+a;//后一个数等于前两个数之和 
  		printf("%d\t",sum);
  		a=i;
  		i=sum;
  		if(count%5==0)//判断一行是否达到5个数 ,达到则换行 
  		{
  			printf("\n");
		  }
  		
  		
  	
  }

return 0;
}

1.\t \n \r \f均是转义字符。

2.\t:水平制表符,将当前位置移到下一个tab位。我们经常用\t来控制对齐,使输出结果更加美观。

//方法2:数组法 
#include<stdio.h>
int main() 
{
  int i,f[20]={1,1};//i控制输出的项数,也是数组中元素的下标
  printf("%d\t%d\t",f[0],f[1]);//访问第一个元素的下标为0 
  for(i=2;i<20;i++)
  {
  	f[i]=f[i-2]+f[i-1];//后一个数等于前两个数之和 
  	if(i%5==0)//判断一行是否输出了五个数,是则换行 
  	{
  		printf("\n");
	  }
	  printf("%d\t",f[i]);
  }

return 0;
}

 1.访问数组中第一个元素的下标是0,不是1.

 2.常使用循环来访问数组。

//方法3:函数法 
#include<stdio.h>
int fibo(int n); //函数声明,告诉编译器程序中会用到这个函数,先不要着急报错 
int main() 
{
  int i;
  for(i=1;i<=20;i++)
  {
  	printf("%d\t",fibo(i));//调用fibo()函数,i为实参 
  	if(i%5==0)
  	{
  		printf("\n");
	  }
  }	 
return 0;
}
int fibo(int n)//斐波那契数列的第n项 (自定义函数,n为形式参数) 
{
	if(n==1||n==2)
{
		return 1;//返回1 
}
else
{
	return fibo(n-2)+fibo(n-1);//利用递归 ,返回前两数之和 
	}
}

 1.形参(形式参数):在函数定义中出现的参数,它没有数据,只能等到函数被调用的时候接收传递进来的数据。

2.实参(实际参数):函数被调用时给出的参数,包含实实在在的数据,会被函数内部的代码使用。

3.实参和形参在数量上、类型上、顺序上必须一致,否则会发生“类型不匹配”的错误。如果能够进行自动类型转换,或者进行强制类型转换,那么实参类型也可以不同于形参类型。

4.函数调用中发生的数据传递是单向的,只是把实参的值传递给形参(单向值传递)。

5.函数调用过程中,形参的值发生改变并不会影响实参。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万能的憨憨^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值