C语言程序设计第七章数组
引用数组
012345
一维数组元素的引用
m{例ain() int a[6]; 1 5
int a[2a][;6]=10;
25 - 4160
a
assc[ca0an]n=ff数((1""%;%组dda"",元, &a素)a;[的0]范);围是:a[0] ~ a[5]
a[1]=a2a[[;60]]*是2;非法的
scan其f("他%的f"为, &Bs级2); ……
ave = s1+s2+…+s100;
这里用100个变量si处理类似 的数据,进行类似的操作 可以尝试用一种结构来组织
if (s1>=ave+10) grade = 'A'; 这些类似的变量 else if (s1 < ave-10) grade = 'C';
一维数组的初始化 若没有给数组元素赋初值,则此时数组元素的值为随机数
如 int a[3]; printf("%d,%d,%d",a[0], a[1], a[2]);
0, 64, 3117
Error … : Too many initializers in function main
若所赋初值数多于定义的数组长度时,系统报错
else grade = 'B'; ……
数组
}
第七章 数组
主要内容
一维数组 二维数组和多维数组 字符数组和字符串
一维数组
主要内容
一维数组的定义 一维数组元素的引用 一维数组的初始化 一维数组举例
一维数组的定义
一维数组的定义方式: 合法标识符
数组类型说数明组符a共有数6组个名元[素常量表达式];
说明
将数组元素的初值依次放在一个大括号内
等价于:
int a[5]; for (i=0; i<5; i++) a[i]=i+1;
一维数组的初始化
一维数组的初始化 可以只给部分数组元素赋初值
如 int a[5]={1, 2, 3};
说明 定义数组a有5个元素,大括号只提供3个初值, 则将前三个元素依次赋值,后面元素值为0 等价于:int a[5]; a[0]=1; a[1]=2; a[2]=3; a[3]=a[4]=0;
数例组元in素t 的a[[类6]]型:; 下标运算符 不能用(表) 示元素个数
单目运算符
只能是整型常量
a
0优先级a[(01]) 左结数合组元素从也a[表0示]开数始组长度
1 a[1]
数组名表示该2数组所a占[2的] 内 址存常单量元的首3地址,a是[3地]
4 a[4]
5 a[5]
注意:不能使 编译时分用配a内[6存] ,并且是连续的
pforrin(tif=(0";%i<d=",9a;)i;++) printf("%d", a[i]);
一维数组元素的引用
分析该程序的运行结果
main() {
int i, a[6];
定义数组
for(i=0; i<6; i++) {
a[i]=i; }
for(i=0; i<=5; i++) {
printf("%d", a[i]); } }
内存字节数= 数组元素个数*sizeof(元素数据类型)
到a[5]结束
一维数组的定义
例 int i=15;
int a[i];
不能使用变量定义数组元素 只能使用整型常量
#define SIZE 10 main() {
P int a[SIZE], b[10];
…… }
一维数组元素的引例 用 int a[10];
} • 数组元素a[i]表示数组的第i+1个分量, i表示数组元素相对于数组起始地址的偏移量
• 引用数组元素时,根据首地址和下标数,计算出该元素的 实际地址,取出该地址的内容进行操作。
一维数组的初始化
一维数组的初始化 可以在定义数组的时候,给它赋初值
如 int a[5]={1, 2, 3, 4, 5};
如
int a[3]={1, 2, 3, 4, 5};
一# d维efi数ne N组10举例 Enter 10 integers:
m{ ain(读) 入10个整数,找出m1其2ax中3=4最105N大,6-mS值7流in、8程=9最1图1,小0av值e=、5平.5均00值00:0
int a[用N]f,oi,r循ma环x,读m入in,1s0u个m;整数到f数loa组t aa中ve;
0 a[0] 1 a[1] 2 a[2] 3 a[3] 4 a[4]
5 a[5] •prin数tf(组"%名d\an是", a一[[00个]]));地; 址量,表示该数组的首地址, prin也tf(就"%是d\第n"一, a个[[11数]]));组; 元素a[0]的地址
printf("%d", a);
一维数组元素的引用
a[0] = 1;
a[1] = 1;
数组必须先定义后使用for (i=2; i<=9; i++)
只能逐个引用数组元素,而不能a[一i] 次=引a[用i-1整]个+a数[i组-2];
数组元素引用格式:
例 int a[10];数组名 [下标表达式] 其中…:…下标/*表对达a式[0可] ~以a是[整9]型赋常值量*/或整型表达式
一维数组的初始化
一维数组不指定数组长度
如 可以写成
int a[5]={1, 2, 3, 4, 5}; int a[]={1, 2, 3, 4, 5};
说明 大括号中有5个元素,在没有指定数组a的长度时, 自动定义数组a有5个元素,并分别赋初值
一维数组的初始化
第七章 数组
提ma出in()数问组题是一种构造数据类型
{ in要t s求1数,输s组2入,:1…有0,0序s个10数学0据,生a的v的e集;成合绩,,用根数据组他名们标的识平均分来划分等级 char大元gr于素ad等:e;于是平构均造分数1组0的分基的本为组A级成成份, 它们应属同一数据类型,用数组名和下标确定 scan小f("于%平f"均, &分s11)0; 分的为C级
printf("Enter %d integers:\n", N);
for
i=0 to 9 读入数据a[i]
for(i=令0最; i<大1值0;mi+a+x和) 最小sc值anmf(in"% 以d及"m,总&a和xa=[sim]u)imn; =为suam[0=]a[0]
max = min = sum = a[0];
for(i=用1f;oi<r循10环; ,i+实+)现当i从1~9时: