C语言程序设计(数组)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:数组的大小是固定的(即:不允许对数组的大小进行
动态定义),另常量表达式的值表示元素的个数(下标值从 0开始)
4
数组的定义及初始化
一维数组的初始化
• 普通数组如果不初始化,其元素值为所分配内存中的随机值; • 对static数组元素不赋初值,系统会自动赋以0值; • 只给部分数组元素赋初值,例如:
int fib[10]={0,1}; 对数组的前两个元素赋初值,未赋初值的元素其值默认为0; 注意:初值的个数不能大于数组元素的个数。
5
数组的定义及初始化
一维数组的初始化
• 当对全部元素赋初值时,则定义时可以不指定数组的长度。 如:
int a[10]={0,1,2,3,4,5,6,7,8,9}; 可写成:
(2) 1 2 5 8 3
a[2] <==> a[1]
3个数(a[2]~a[4])中找最小数,与a[2]交换
(3) 1 2 3 8 5
a[4] <==> a[2]
输入n(n<10), 再输入n个数,将最小值与第一个数交换,输 出交换后的n个数。
用index记录最小值对应的下标 a[index]就是最小值
最小值与第一个数交换 a[index] <==> a[0]
16
一维数组的应用—选择法排序
例5-3 输入n(n<10), 再输入n个数,用选择法将它们从小到大排序 后输出。
int a[10]={0,1,2,3,4,5,6,7,8,9};
建议不要省略数组长度
6
数组的引用 数组必须先定义,后使用。 对数值型数组而言,只能逐个引用数组元素。 例如: 定义数组 int a[3],数组元素为:
a[0] a[1] a[2]
7
引用形式
一维:
数组定义时不能进行 动态定义,引用时, 可以用变量做下标值
第5章 数组
C语言程序设计课程组 魏慧琴
1. 一维数组 2. 二维数组 3. 字符数组
学习内容
1
第一单元 一维数组 1. 数组的概念 2. 一维数组的定义及初始化 3. 数组的引用
2
数组的概念
构造数据类型之一 定义:数组是有序数据的集合. 组成数组的数据称为数组的元素; 数组的每个元素都属于同一个数据类型;
例5-1 阅读下列源程序,请写出运行结果。(注意输出 及处理)
#include<stdio.h> int main() { int f[10], i;
f[0]=1; f[1]=1; for(i=2;i<10;i++)
f[i]=f[i-1]+f[i-2];
for(i=0;i<10;i++)
{ if(i%5==0)
Enter n: 6
int a[10];
Enter 6 integers: 2 9 -1 8 1 6
printf("Enter n: ");
min is -1 sub is 2
scanf("%d", &n);
printf("Enter %d integers: ", n);
for(i = 0; i < n; i++)
设 n=5 ,设数据为 3 5 2 8 1
3
5
2
8
1
(1) 1 5 2 8 3
(2) 2 5 8 3
(3)
385
(4)
58
17
一维数组的应用—选择法排序
3 5 2 8 1 (n=5)
5个数(a[0]~a[4])中找最小数,与a[0]交换
(1) 1 5 2 8 3
a[4] <==> a[0]
4个数(a[1]~a[4])中找最小数,与a[1]交换
12
#include <stdio.h> int main(void)
一维数组的应用--求最小值
{ int i, min, n; int a[10]; printf("Enter n: "); scanf("%d", &n);
Enter n: 6 Enter 6 integers: 2 9 -1 8 1 6 min is -1
return 0; 13
}
一维数组的应用--求最小值及其下标
输入n(n<10), 再输入n个数, 输出最小值和它所对应的下标。 用index记录最小值对应的下标 a[index]就是最小值
14
一维数组的应用--求最小值及其下标
#include <stdio.h>
int main(void) { int i, index, n;
scanf("%d", &a[i]);
index = 0;
for(i = 1; i < n; i++)
if(a[i] < a[index]) index = i;
printf("min is %d\tsub is %d\n", a[index], index); 15
return 0;}
一维数组的应用—交换最小值
数组名[下标值]
示例:a[2]=1;
a[i]=7; (i为整型变量)
注意:下标的值不要超过数组的范围,下标的取值 范围0~数组长度-1。
8
数组的引用
数组和循环 for(i = 0; i < 10; i++)
printf("%d ", f[i]);
数组下标作为循环变量,通过循环,逐个 处理数组元素
9ຫໍສະໝຸດ Baidu
printf("Enter %d integers: ", n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
min = a[0];
for(i = 1; i < n; i++)
if(a[i] < min) min = a[i];
printf("min is %d \n", min);
printf("\n");
printf("%4d",f[i]);
}
return 0;
}
10
第二单元 一维数组的应用 • 一维数组的应用--排序 • 一维数组的应用--数据查找
11
一维数组的应用--求最小值
例 5-2 输入n(n<10),再输入n个数 (1) 求最小值 (2) 求最小值和它所对应的下标 (3) 将最小值与第一个数交换,输出交换后的n个数
每个数组要用一个统一的标识符标识(称为数组名)。
英语 90 89
...... 90
数学 90 91
100
计算机 89 95
90
a[1][1]
3
数组的定义及初始化
类型说明符 数组名[常量表达式];
一维
二维
int a[5]; char c[20]; float x[10];
int a[3][4]; char c[2][3]; float x[2][3];