C程序设计第6章 利用数组处理批量数据课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的顺序存放。 每个数据元素占用
的字节数,就是其类 型的字节数。
例如:
float a[100]; 字节数为:100*4。 高地址
86.5 92.0 77.5 52.0
. . .
94.0
a[0] a[1] a[2] a[3]
. . .
a[99]
C程序设计第6章 利用数组处理批量数据
6.1.1怎样定义一维数组
第6章 利用数组处理批量数据
6.1 怎样定义和引用一维数组 6.2 怎样定义和引用二维数组 6.3 字符数组
C程序设计第6章 利用数组处理批量数据
6.1怎样定义和引用一维数组
6.1.1 怎样定义一维数组 6.1.2 怎样引用一维数组元素 6.1.3 一维数组的初始化 6.1.4 一维数组程序举例
C程序设计第6章 利用数组处理批量数据
常量表达式中可以包括常量和符号常量,但不能包含变
量。也就是说,C语言不允许对数组的大小作动态定义,即数 组的大小不依赖于程序运行过程中变量的值。
例如:
int n;
scanf(“%d″,&n); /*在程序中输入数组的大小 */
int a[n];
错误
来自百度文库
数组说明中其他常见的错误:
➢① float a[0]; /* 数组大小为0没有意义 */ ➢② int b(2); /* 不能使用圆括号 */ ➢③ int k, a[k];/*C程序不设计能第6用章 利变用数量组处说理批明量数数据 组大小*/
C程序设计第6章 利用数组处理批量数据
例6.3 有10个地区的面积,要求对它们按由小到大的顺序 排列。 • 解题思路:
• 排序的规律有两种:一种是“升序”,从小到大;另 一种是“降序”,从大到小
• 把题目抽象为:“对n个数按升序排序” • 采用起泡法排序
C程序设计第6章 利用数组处理批量数据
a[0] a[1] a[2] a[3] a[4] a[5]
C程序设计第6章 利用数组处理批量数据
#include <stdio.h> int main() {
int i; int f[20]={1,1}; for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) {
if(i%5==0) printf("\n"); printf("%12d",f[i]); } printf("\n"); return 0; }
a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9] 0123456789
C程序设计第6章 利用数组处理批量数据
6.1.3一维数组的初始化
在定义数组的同时,可以对数组元素初始化: ➢1.定义数组时对全部数组元素赋初值。
int a[10] = {0,1,2,3,4,5,6,7,8,9}; ➢2.定义数组时对部分元素赋值。
t=a[6]; //数组中序号为6的元素
C程序设计第6章 利用数组处理批量数据
6.1.2 怎样引用一维数组元素
例6.1 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按 逆序输出。 •解题思路: •定义一个长度为10的数组,数组定义为整型 •要赋的值是从0到9,可以用循环来赋值 •用循环按下标从大到小输出这10个元素
int a[10] = {0,1,2,3,4}; /* 花括弧内提供了前5个元素的 初值,后5个元素的初值为0。 */ ➢3.如果数组元素全部赋初值为0,可以写成:
int a[10] = {0,0,0,0,0,0,0,0,0,0}; 或:int a[10] = {0}; ➢4.如果定义时对全部数组元素赋初值,可以不指定数组长度。 int a[5] = {1,2,3,4,5}; 可以表示为: int a[] = {1,2,3,4,5};
C程序设计第6章 利用数组处理批量数据
#include <stdio.h> int main() {
int i,a[10]; for (i=0; i<=9;i++)
a[i]=i; for(i=9;i>=0; i--)
printf("%d ",a[i]); printf("\n"); return 0; }
C程序设计第6章 利用数组处理批量数据
6.1.4一维数组程序举例
例6.2 用数组处理求Fibonacci数列问题 •解题思路: •例5.8中用简单变量处理的,缺点不能在内存中保存这些数。 假如想直接输出数列中第25个数,是很困难的。 •如果用数组处理,每一个数组元素代表数列中的一个数, 依次求出各数并存放在相应的数组元素中
6.1.1怎样定义一维数组
•定义一维数组的一般形式为: 类型符 数组名[常量表达式];
•数组名遵循标识符的命名规则 如 int a[10];
每个元素的 数据类型
数组名 数组长度
10个元素:a[0],a[1],a[2],…,a[9]
C程序设计第6章 利用数组处理批量数据
6.1.1怎样定义一维数组
一维数组在内存中 低地址
6.1.2 怎样引用一维数组元素
•引用数组元素的表示形式为:
数组名[下标]
下标可以是整型表达式。 例如: a[0]=a[5]+a[7]-a[2*3] 注意:定义数组时用到的“数组名[常量表达式]” 和引 用数组元素时用到的“数组名[下标]” 是有区别的。 例如∶ int a[10]; //数组有10个元素
a[0] 8 5 5 5 5 a[1] 5 8 4 4 4 a[2] 4 4 8 2 2 a[3] 2 2 2 8 0 a[4] 0 0 0 0 8 a[5] 9 9 9 9 9
C程序设计第6章 利用数组处理批量数据
for(i=0;i<3;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
for(i=0;i<5;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
9 8 88 8 8
8
5 9 55 5 5 4 5 94 4 4 2 4 49 2 2
0
2 22 9 0
0 00 0 9
C程序设计第6章 利用数组处理批量数据
大数沉底
for(i=0;i<4;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
的字节数,就是其类 型的字节数。
例如:
float a[100]; 字节数为:100*4。 高地址
86.5 92.0 77.5 52.0
. . .
94.0
a[0] a[1] a[2] a[3]
. . .
a[99]
C程序设计第6章 利用数组处理批量数据
6.1.1怎样定义一维数组
第6章 利用数组处理批量数据
6.1 怎样定义和引用一维数组 6.2 怎样定义和引用二维数组 6.3 字符数组
C程序设计第6章 利用数组处理批量数据
6.1怎样定义和引用一维数组
6.1.1 怎样定义一维数组 6.1.2 怎样引用一维数组元素 6.1.3 一维数组的初始化 6.1.4 一维数组程序举例
C程序设计第6章 利用数组处理批量数据
常量表达式中可以包括常量和符号常量,但不能包含变
量。也就是说,C语言不允许对数组的大小作动态定义,即数 组的大小不依赖于程序运行过程中变量的值。
例如:
int n;
scanf(“%d″,&n); /*在程序中输入数组的大小 */
int a[n];
错误
来自百度文库
数组说明中其他常见的错误:
➢① float a[0]; /* 数组大小为0没有意义 */ ➢② int b(2); /* 不能使用圆括号 */ ➢③ int k, a[k];/*C程序不设计能第6用章 利变用数量组处说理批明量数数据 组大小*/
C程序设计第6章 利用数组处理批量数据
例6.3 有10个地区的面积,要求对它们按由小到大的顺序 排列。 • 解题思路:
• 排序的规律有两种:一种是“升序”,从小到大;另 一种是“降序”,从大到小
• 把题目抽象为:“对n个数按升序排序” • 采用起泡法排序
C程序设计第6章 利用数组处理批量数据
a[0] a[1] a[2] a[3] a[4] a[5]
C程序设计第6章 利用数组处理批量数据
#include <stdio.h> int main() {
int i; int f[20]={1,1}; for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) {
if(i%5==0) printf("\n"); printf("%12d",f[i]); } printf("\n"); return 0; }
a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9] 0123456789
C程序设计第6章 利用数组处理批量数据
6.1.3一维数组的初始化
在定义数组的同时,可以对数组元素初始化: ➢1.定义数组时对全部数组元素赋初值。
int a[10] = {0,1,2,3,4,5,6,7,8,9}; ➢2.定义数组时对部分元素赋值。
t=a[6]; //数组中序号为6的元素
C程序设计第6章 利用数组处理批量数据
6.1.2 怎样引用一维数组元素
例6.1 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按 逆序输出。 •解题思路: •定义一个长度为10的数组,数组定义为整型 •要赋的值是从0到9,可以用循环来赋值 •用循环按下标从大到小输出这10个元素
int a[10] = {0,1,2,3,4}; /* 花括弧内提供了前5个元素的 初值,后5个元素的初值为0。 */ ➢3.如果数组元素全部赋初值为0,可以写成:
int a[10] = {0,0,0,0,0,0,0,0,0,0}; 或:int a[10] = {0}; ➢4.如果定义时对全部数组元素赋初值,可以不指定数组长度。 int a[5] = {1,2,3,4,5}; 可以表示为: int a[] = {1,2,3,4,5};
C程序设计第6章 利用数组处理批量数据
#include <stdio.h> int main() {
int i,a[10]; for (i=0; i<=9;i++)
a[i]=i; for(i=9;i>=0; i--)
printf("%d ",a[i]); printf("\n"); return 0; }
C程序设计第6章 利用数组处理批量数据
6.1.4一维数组程序举例
例6.2 用数组处理求Fibonacci数列问题 •解题思路: •例5.8中用简单变量处理的,缺点不能在内存中保存这些数。 假如想直接输出数列中第25个数,是很困难的。 •如果用数组处理,每一个数组元素代表数列中的一个数, 依次求出各数并存放在相应的数组元素中
6.1.1怎样定义一维数组
•定义一维数组的一般形式为: 类型符 数组名[常量表达式];
•数组名遵循标识符的命名规则 如 int a[10];
每个元素的 数据类型
数组名 数组长度
10个元素:a[0],a[1],a[2],…,a[9]
C程序设计第6章 利用数组处理批量数据
6.1.1怎样定义一维数组
一维数组在内存中 低地址
6.1.2 怎样引用一维数组元素
•引用数组元素的表示形式为:
数组名[下标]
下标可以是整型表达式。 例如: a[0]=a[5]+a[7]-a[2*3] 注意:定义数组时用到的“数组名[常量表达式]” 和引 用数组元素时用到的“数组名[下标]” 是有区别的。 例如∶ int a[10]; //数组有10个元素
a[0] 8 5 5 5 5 a[1] 5 8 4 4 4 a[2] 4 4 8 2 2 a[3] 2 2 2 8 0 a[4] 0 0 0 0 8 a[5] 9 9 9 9 9
C程序设计第6章 利用数组处理批量数据
for(i=0;i<3;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
for(i=0;i<5;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
9 8 88 8 8
8
5 9 55 5 5 4 5 94 4 4 2 4 49 2 2
0
2 22 9 0
0 00 0 9
C程序设计第6章 利用数组处理批量数据
大数沉底
for(i=0;i<4;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }