一、学习目标:
- 数组
- 一维数组
- 访问一维数组:
- 应用:Fibonacci数列(兔子数列) ,统计数字出现的次数
- 统计数字出现的次数
- 求十个数中最大值
二、学习内容:
1.数组:
①(基本数据类型:整型 实型 字符型 枚举型)
(构造类型:由基本数据类型重组产生的新的类型)
数组即是一种构造类型
②概念:数组是一组类型相同的有序数据的集合.
组成数组的变量称为该数组的元素.
2.一维数组
定义长度为10的整型数组a:int a[10](其中依次是 元素类型 变量名 长度)(每个元素是整型)(0~9)(a是数组的首地址,是个常量)
一维数组所占的字节数=sizef(元素类型)*数组长度
(注意并不是一一对应)
错误示例:
(以上截图取自@中国大学)
3.访问一维数组:
①实质是访问数组中的元素
数组名+下标 a[i]
②遍历数组元素:借助循环语句
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%d",a[i]);
4.应用:Fibonacci数列(兔子数列)
/*fibonacci数列*/
#include <stdio.h>
int main()
{
int fib[20]={0,1,1};
int i;
for(i=3;i<20;i++)
{
fib[i]=fib[i-1]+fib[i-2];
}
for(i=0;i<20;i++)
{
//printf("%d ",fib[i]); /*每个数字用空格隔开*/
printf("%d\t",fib[i]);
if((i+1)%5==0 )
printf("\n"); /*每五个一行*/
}
return 0;
}
5.统计数字出现的次数
/*统计数字出现的次数*/
#include<stdio.h>
int main()
{
int m,i,digit[10]={0};
scanf("%d",&m);
while(m)
{
i=m%10;
digit[i]++;
m=m/10;
}
for(i=0;i<10;i++)
printf("%d\t",i);
printf("\n");
for(i=0;i<10;i++)
printf("%d\t",digit[i]);
printf("\n");
return 0;
}
6.求十个数中最大值
/*求十个数中最大值*/
#include<stdio.h>
int maxnum(int a[],int n)
{
int i ,max;
max=a[0];
for(i=1;i<n;i++)
if(max<=a[i])
max=a[i];
return max;
}/*定义函数 */
int main()
{
int arr[10],max,i;
for(i=0;i<10;i++)
scanf("%d",&arr[i]);
max=maxnum(arr,10);
printf("最大值为:%d\n",max);
return 0;
}
(以上代码及截图取自@中国大学)
三、总结 备注:
备注:地址传递是双向传递,形参的改变会影响实参的变化