3.数组引用
(1)原则:通过下标引用数组中每一个单元数据
(2)下标范围[0~n-1],n为数组长度
(3)格式:下标必须为常量或常量表达式
(4)例:
int a[5];
a[0]=1;
a[5>3]=2;
a[a[1]]=3;
(数组下标越界不是语法错误,编译器无法检查出来,但没有意义)
4.数组的初始化
(1)定义同时赋值
int a[4]={1,2,3,4};
int a[4]={1,2};/*局部赋值,剩余补零*/
int a[4]={0};/*数组整体清零*/
int a[4]={}/*语法错误*/
int a[]={1,2,3,4};
int a[4];
a[4]={1,2,3,4};/*语法错误*/
(2)定义结束后赋值:循环赋值:
框架:
for(i=0;i<数组长度;i++)
scanf("%d",&a[i]);
注:输入时使用空格或者回车作为间隔符
(3)随机数赋值
a.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int a[10];
int i;
srand(time(0));
for(i=0;i<10;i++)
{
a[i]=rand()%100;/*生成小于100的随机数*/
printf("%d",a[i]);
}
}
b.函数意义
(a)rand()产生的是伪随机数,是根据一个种子种数,产生符合正态分布的随机数,开机后,由于种子数值固定为(0),则随机数在开机期间固定。
(b)srand()同rand()提供种子数
(c)time()生成当前程序运行的时间
(d)srand(time(0))根据运行的时间不同,产生不同的种子数
5.输出
(1)框架:for(i=0;i<代码长度;i++) printf("%d",a[i]);
(2)输出时注意间隔符
6.程序案例
(1)数组访问
a.原则:数组处理的前提为数组访问,即通过下标遍历数据
b.例 输出数组的最大值
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int a[10];
int i,max;
srand(time(0));
for(i=0;i<10;i++)
{
a[i]=rand()%100;
printf("%d ",a[i]);
}
max=a[0];
for(i=1;i<10;i++)
{
if(a[i]>a[i-1])
{
max=a[i];
}
}
printf("%d",max);
}
下期继续更新一维数组