1.如何定义,初始化,引用一维数组 2.斐波那契数列,兔叽繁殖问题,黄金分割线数列三种不同方法

一:如何定义一维数组
要点:①属于哪个数据类型 ②数组中有多少元素 ③哪些数据组成数组
定义一维数组的一般形式为:类型符 数组名【常量表达式】
1.数组名的命名规则和变量名相同,遵循标识符命名规则。(标识符的命名规则:①只能由字母,数字和下画线3种字符组成第一个字符必须为字母或下画线。(注意:编译系统认为大写字母和小写字母是两个不同的字符,一般而言变量名小写字母表示。))
2.在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式(常量表达式中可以包括常量和符号常量,“int a[3+6];”是合法的,但是"int a[n];"是不合法的,在定义的时候就要告诉电脑开辟多大的空间,c语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值)用来表示元素的个数,即数组长度,但注意下标是从0开始的
3.下标可以是整型常量或整型表达式,定义数组时用到的“数组名【常量表达式】”和引用数组元素时用到的“数组名【下标】”形式相同,但含义不同。因此,对数组初始化的时候不能这样:int a[10]; a[10]={1,2,3,4,5,6,7,8,9,10};因为在这时,后面的a[10]代表的仅仅是一个单一的数组元素。
二:一维数组的初始化(常在定义数组的同时给各数组元素赋值,称为数组的初始化。)
要点:①将数组中各元素的初值顺序放在一对花括号内。②数据间用逗号分隔。
1.可以利用循环来对某个数组赋值。
2.可以只给数组中的一部分元素赋值。int a[10]={0,1,2,3,4};其他后五个元素默认为0。
3.在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度(如果数组长度与提供初值的个数不相同,则方括号中的数组长度不能省略)。
4.如果在定义数值型数组时,指定了数组的长度并对之初始化,凡未被“初始化列表”指定初始化的数组元素,系统会自动把他们初始化为0,如果是字符型数组,则初始化为’\0‘,如果是指针型数组,则初始化为NULL,即空指针)。

三:三种不同的方法敲出斐波那契数列。
①#include
int main()
{
int i;
int f[20] = { 1,1 };
for (i = 2; i < 20; i++)
f[i] = f[i - 2] + f[i - 1];
for (i = 0; i < 20; i++)
{
if (i % 5 == 0)printf("\n"); //控制每输出五个数后换行
printf("%12d", f[i]);
}
printf("\n");
return 0;
}
1.如何定义,初始化,引用一维数组 2.斐波那契数列,兔叽繁殖问题,黄金分割线数列三种不同方法_第1张图片
②#include //这里运用的是一种巧妙的处理斐波那契数列的方法,在f1,f2的和求出来以后直接放在f1里面,f1就是第三个数的数值,然后再和f2相加得出来的就是第四个数的数值,显而易见第五个数的数值是用也就是第三个数的数值加上第四个数的数值,因此f1+f2就是第五个数的数值,以此类推就可以求出来后面的数值了。
int main()
{
int f1 = 1, f2 = 1;
int i;
for (i = 1; i < 20; i++)
{
printf("%12d %12d", f1, f2);
if (i % 2 == 0)printf("\n");
f1 = f1 + f2;
f2 = f2 + f1;
}
return 0;
}
1.如何定义,初始化,引用一维数组 2.斐波那契数列,兔叽繁殖问题,黄金分割线数列三种不同方法_第2张图片
③#include //这应该是最基础,最实诚的一种方法了,运用循环使用数字和数字的累加。
int main()
{
int a = 1, b = 1, i = 1, c, N;
scanf_s("%d", &N);
for (i = 1; i <= N - 2; i++)
{
c = a + b;
a = b;
b = c;
}
printf("%d", c);
return 0;
}

你可能感兴趣的:(1.如何定义,初始化,引用一维数组 2.斐波那契数列,兔叽繁殖问题,黄金分割线数列三种不同方法)