C语言第五章

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.1.3 一维数组的初始化
• 给数组赋值的方法: 数组元素逐个赋值 数组初始化赋值 数组动态赋值
• 数组初始化赋值:指在数组定义时 给数组元素赋予初值。
• 数组动态赋值:通过键盘的数值输 入,对数组元素的赋值。
数组动态赋值
int a[10],i; for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
ip
p
p
a[1]~a[9]
ip
p
p
a[0]~a[9] ip
main() {int i,j,p,q,s,a[10];
for(i=0;i<10;i++) scanf("%d",&a[i]);
for(i=0;i<10;i++) {p=i;q=a[i];
for(j=i+1;j<10;j++) if(a[j]>q) {p=j;q=a[j];}
if(i!=p) {s=a[i]; a[i]=a[p]; a[p]=s;}
printf("%d",a[i]); } }
元素的引用
• C语言规定,只能逐个使用数组元 素,不能一次引用整个数组。
• 例如,输出数组a各元素内容。 for(i=0;i<10;i++) printf("%d",a[i]);
例5.1 将0~9十个数顺序存入一整 型数组中,再逆序输出。
main() {
int i,a[10]; for(i=0;i<=9;i++)
for(i=0;i<10;i++) scanf("%d",&a[i]);
max=a[0]; for(i=1;i<10;i++) if(a[i]>max) max=a[i];
printf("max=%d\n",max); }
main() {int i,max,a[10];
printf("input 10 numbers:\n");
C语言程序设计基础
第五章 数组
本节提要
• 一维数组 • 二维数组 • 字符数组
数组
• 数组是有序数据的集合,数组中的 每一个元素都属于同一个数据类型。
• 数组属于构造数据类型,构造类型 数据是由基本类型按照一定规则组 成的,因此也称“导出类型”。
int a[5];
a
a[0] 2个字节
a[1] 2个字节
a
数组首地址存 放在数组名a中
数组a内存分配图
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
2个字节

2个字节

2个字节
注意[]
• 数组在定义时,[]内表示数组的 大小,必须是常量。
• 数组在使用时,[]内表示某一元 素的下标,可以使常量,也可以是 下标变量。
a[2] …
a[3] …
a[4] 2个字节
5.1 一维数组的定义和引用
• 一维数组的定义: 类型说明符 数组名[常量表达式];
基本数据类型或 构造数据类型
常量,表示数组 元素的个数,也 称为数组的长度
百度文库
int a[10]; 声明整型数组a,有10个元素。
float b[10]; 声明实型数组b,有10个元素
全部元素赋值时,可省略说明数组长度。
int a[5]={1,2,3,4,5}; 可写为: int a[ ]={1,2,3,4,5};
5.1.4 一维数组程序举例
例5.3 数组动态赋值。输入十个 数存入数组,求出其中最大数。
main() {int i,max,a[10];
printf("input 10 numbers:\n");
• 允许在同一个类型说明中,说明多 个数组和多个变量。
int a,b,c,k1[10],k2[20];
5.1.2 一维数组元素的引用
• 形式: 数组名[下标]
• 下标代表元素的顺序号,顺序号从0 开始计起。
int a[10]; 数组的元素分别为: a[0]、a[1]、a[2] … a[8]、a[9]
printf("%d ",a[i]); printf("\n%d\n",a[5.2]); }
main() {
int i,a[10]; for(i=0;i<10;)
a[i++]=2*i+1; for(i=0;i<=9;i++)
printf("%d ",a[i]); printf("\n%d\n",a[5.2]); }
main() {
int i,a[10]; for(i=0;i<10;)
a[i++]=2*i+1; for(i=0;i<=9;i++)
printf("%d ",a[i]); printf("\n%d\n",a[5.2]); }
main() {
int i,a[10]; for(i=0;i<10;)
a[i++]=2*i+1; for(i=0;i<=9;i++)
char ch[20]; 声明字符数组ch,有20个元素。
• 在同一作用范围内,数组名、函数 名、变量名不能相重。
main() {
int a; float a[10]; …… }
• 声明数组时,数组的大小必须使用 常量表达式,不可以用变量表示。
main() { int n=5; int a[n]; …… }
for(i=0;i<10;i++) scanf("%d",&a[i]);
max=a[0]; for(i=1;i<10;i++) if(a[i]>max) max=a[i];
printf("max=%d\n",max); }
例5.4 选择排序。输入十个整数, 按从大到小的顺序输出。
a[0]~a[9]
数组初始化赋值
int a[10]={0,1,2,3,4,5,6,7,8,9};
相当于: int a[10]; a[0]=0;a[1]=1;...a[9]=9;
说明
int a[10]={0,1,2,3,4}; 部分赋值。表示只给a[0]~a[4]赋 值,而剩余元素自动赋0值。
初值要逐个书写。
int a[5]={1,1,1,1,1}; 不能写为: int a[5]=1;
a[i]=i; for(i=9;i>=0;i--)
printf("%d ",a[i]); }
main() {
int i,a[10]; for(i=0;i<=9;i++)
a[i]=i; for(i=9;i>=0;i--)
printf("%d ",a[i]); }
例5.2 将从1起的连续十个奇数顺 序存入一数组,再顺序输出。
相关文档
最新文档