C语言数组PPT课件
合集下载
C语言-C06数组PPT课件
11
补充:随机函数(TC版)
TC中同样有产生随机数的工具, 用法包括三个要点:
(1) 在main的前面用include包含 文件“stdlib.h”,写作
# include < stdlib.h >
(2) 在main中先用 “randomize( );”语句把随机数 系统初始化;
(3) 每次使用“random(n)”产生 一个0到n-1之间的随机整数。
12
数组应用示例---模拟掷骰子
Q:用随机数工具模拟掷骰子现象:掷100次骰子,显示每次是哪
个面朝上,并统计六个面朝上各出现了多少次。
分析:
1.骰子共有六个面,各个面上的数字分别是1到6,用“rand( )%6” 可以产生0到5之间的随机数,加1后就在1到6之间。
2.可以使用100次随机数工具,每次得到的数当作是掷骰子的结果。
2、数组 用一片连续的存储区域依次存放各个数据 特点: 所有数据是同一种类型 数据间有顺序 从0开始编排下标
概念:数据元素
3
在内存中存放数组中的数据
把如下一组整数放到内存中 15,28,19,37,32,12,20,26
准备内存
➢ 预先确定数据的个数,考虑最大需要, 记作N;
➢ 每个数据需要多少字节,记作K;
9
颠倒数组元素存放次序
Q:vx是由N个元素构成的数组,颠倒其中的存放次序,即把vx[0]
中存放的数据与vx[N-1]中存放的数据交换,把vx[1]中存放的 数据与vx[N-2]中存放的数据交换,...
分析:
1. 总共需要进行N/2组的元素交换,可以 用一个循环计数变量i从0到N/2计数,进 行相应的控制;
15
查找数组中满足条件的元素
C语言数组PPT课件
}
第18页/共52页
例5-8 将一维数组中的n(n<=50)个数按逆序存放。
3 45 2 -6 -17 66 50
50 66 -17 -6 2 45 3
for(i=0;i<=(n-1)/2;i++) { t=a[i];
a[i]=a[n-1-i]; a[n-1-i]=t; 第19页/}共52页
#include "stdio.h" main( ) { int a[50],t,n,i;
等价
第6页/共52页
三、 随机函数random和rand
2. rand函数的用法: 格式: rand ( ) 说明: (1) 该函数包含在头文件"stdlib.h"中。 (2) 该函数产生0到整型最大值之间的一个随机整数。
产生[a,b]区间上任意整数的方法: rand( )%(b-a+1)+a
srand函数 (头文件time.h) srand(time(0))
for(j=2;j<10;j++) if(a[j]<a[1]) {t=a[1]; a[1]=a[j]; a[j]=t;} 执行9次
……
for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[j]<a[i]){t=a[i]; a[i]=a[j]; a[j]=t;}
第13页/共52页
第4页/共52页
2. 一维数组的引用
只能逐个引用数组元素,而不能一次引用整个数组。 引用形式: 数组名[ 下标 ]
例5-1 数组元素的引开始。
{int i, b[10];
C语言程序设计教程数组PPT课件
{ if (max<a[i]) { max=a[i];j=i;}/*把当前最大值送max,下标送j*/
else if (min>a[i]){ min=a[i];k=i;}
}
printf("max:a[%d]=%d,min:a[%d]=%d",j,max,k,min);
}
第11页/共78页
212021/4/6
2021/4/6
4
第4页/共78页
6.1.2 数组元素的引用
定义了数组以后,就可使用它了。
但不能利用数组名来整体引用一个数组,只能单个的使用数组 元素
数组元素的描述 : 由 数组名加方括号中的下标 组成,即:
数组名[下标]
下
标:数组元素在数组中的顺序号,使用整序型表达
式。
a[5]=80;
取值范围:从0到元素个数-1。 C语言不a[对2.5下]=标60;越?界作语法
③ #define N 5
long data[N]; /* 定义一个有5个元素的长整型数组
data */
2021/4/6
3
第3页/共78页
例:试判断下列数组定义是否合法:
int student[35]; char name[20]; float score[35]; #define student 35 float n_student[student]; int score_student[student*3]; int person(10); int n=10, a[n];
若不对auto数组进行初始化,则其初值是不可知的。
若一个static或外部数组未进行初始化,则对数值型 数组元素,初值为0,而对字符型数组元素,初值为空字 符‘\0’.
C语言-数组PPT课件
12
34
56
78
9
a[0]
a[1]
a[2]
a[3]
a[4]
×
2020/5/27
6
一维数组的赋值
数组赋值和普通变量赋值一样 – 只能逐个对数组元素进行操作! – 不能整体赋值! – 切忌下标越界!
int a[4];
√
a[0]=1; a[1]=3;
a[2]=5; a[3]=7;
int a[4];
√
for (i=0; i<4; i++)
int f[YEAR_MONTH+1] = {0,1,1}; int month;
兔子问题 (数组版)
for (month=3; month<=YEAR_MONTH; month++) {
f[month] = f[month-1] + f[month-2]; }
for (month=1; month<=YEAR_MONTH; month++) {
反转并打印数组
for (i = 0; i < N/2; {
temp = a[i]; a[i] = a[N-1-i]; a[N-1-i] = temp; }
++i)
for (i = 0; i < N; ++i)
printf(“%3d ", a[i] ) ;
2020r/5e/2t7 urn 0;
16
求数组最小元素及其所在下标
2020/5/27
× //长度n不可以是变量
5
一维数组的初始化
√ int a[5] = {12, 34, 56, 78, 9};
C语言程序设计ppt数组
存储类型阐明符:extern、static 类型修饰符:const、volatile 数组名:是一种标识符,是一种地址常量,用以表
达数组中打头元素旳地址
2024/10/10
6
8.2.1 一维数组旳申明
例8.1 具有基本数据类型旳一维数组旳申明
#define SIZE 10 int array[5]; double d[5],e[SIZE]; char name[SIZE*5];
13. double even;
21. course_even[i]=course_su
/*分别为全部课程旳总分、平均分 m[i]/5.0;
*/
22. sum+=course_sum[i];
14. int i;
23.
} /* 计算各门课平总分 */
24. even=sum/(3.0*SIZE);
2024/10/10
2024/10/10
17
例8.10
8. int course_sum[3]={0,0,0}; 15. for(i=0;i<5;i++){
9. double course_even[3];
16. course_sum[0]+=math[i];
/组**分/ 别为各门课程总分、平均分数17. course_sum[1]+=physics[i];
用若干个数字序号(下标)来区别各数组元素
例如定义float score[30],可表述30位学生成绩 用数组具有什么好处?
2024/10/10
3
8.1 数组概述
问题
计算全班30位同学某门课程旳平均成绩
处理措施
设置30个float型变量来统计成绩 设置一种有30个float型元素旳数组来统计成绩
达数组中打头元素旳地址
2024/10/10
6
8.2.1 一维数组旳申明
例8.1 具有基本数据类型旳一维数组旳申明
#define SIZE 10 int array[5]; double d[5],e[SIZE]; char name[SIZE*5];
13. double even;
21. course_even[i]=course_su
/*分别为全部课程旳总分、平均分 m[i]/5.0;
*/
22. sum+=course_sum[i];
14. int i;
23.
} /* 计算各门课平总分 */
24. even=sum/(3.0*SIZE);
2024/10/10
2024/10/10
17
例8.10
8. int course_sum[3]={0,0,0}; 15. for(i=0;i<5;i++){
9. double course_even[3];
16. course_sum[0]+=math[i];
/组**分/ 别为各门课程总分、平均分数17. course_sum[1]+=physics[i];
用若干个数字序号(下标)来区别各数组元素
例如定义float score[30],可表述30位学生成绩 用数组具有什么好处?
2024/10/10
3
8.1 数组概述
问题
计算全班30位同学某门课程旳平均成绩
处理措施
设置30个float型变量来统计成绩 设置一种有30个float型元素旳数组来统计成绩
C语言数组PPT课件
一、一维数组的初始化
除了在定义数组变量时用初值列表为数组做整体赋值之外, C语言无法用C语句对数组变量做整体赋值。也就是说, 下面的做法是错误的:
int a[5]; a={1,2,3,4,5};//错误 a[]={1,2,3,4,5};//错误 首先,a是数组名,表示数组在内存中的地址,不能被赋 值,其次{1,2,3,4,5}不是合法表达式,=右边必须是 合法表达式,再次,a[ ]也不是合法的表达式。下面的做 法也是错误的:
5、C程序为数组a在内存中开辟8个连续的存储单元,如图可见 每个存储单元的名字,可以用这样名字来引用各存储单元。
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
一、一维数组的定义
例如:int a[20];定义了一个20个单元的int型数组。变量 名是a,数组的每个数据单元都是int型,表达式sizeof(a) 的值是20*2=40。
int a[10],k; for(k=0;k<10;k++) a[k]=k*2+1;
想输入数组中各单元的数据,必须利用循环语句调用 scanf等函数逐个输入各数组单元的数据,而不能做到所 谓的“整体输入”。下面的程序是错误的:
int a[3];scanf("%d%d%d",a);
scanf函数的第一个参数中有3个%d,因此,后面必须跟 着3个其他参数,不能只有一个a。上面的程序必须改成:
其中j 和i+k是下标表达式 其值>=0&&<8 注意: 1、一个数组元素实质上就是一个变量名,代表内存中的一
个存储单元。一个数组占有一串连续的存储单元。 2、在C语言中,一个数组不能整体引用,不能用x代表x[0]到
C 数组ppt课件
一维数组元素的使用
数组是由数组元素组成的。一个数组元素实际上就 是一个变量,那如何来使用这些变量呢? int a[10]; 使用格式: 数组名[下标] scanf(“%d”,a); int i; for(i=0;i<10;i++) 下标从0 开始。如int a[5]表示该数组有5个元素, scanf(“%d”,&a[i]); 分别为a[0],a[1],a[2],a[3],a[4] 。 for(i=9;i>=0;i--) printf(“%d”,a); 下标表示了元素在数组中的顺序号。只能为整型常 printf(“%d”,a[i]); 量或整型表达式。如为小数时,将自动取整。 数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量(先定义后使用)。只能逐个地使用 下标变量,而不能一次使用整个数组。
从键盘输入10个整数,求出这 10个数的最大值并输出。
例:求等差数列2 6 10 14 18的和。 main() main() { { int a[5],i,sum=0; int a[5],i,sum=0; a[0]=2; a[0]=2; a[1]=6; for(i=1;i<5;i++) a[2]=10; a[3]=14; a[i]=a[i-1]+4; a[4]=18; for(i=0;i<5;i++) for(i=0;i<5;i++) 对数组的赋值: sum=sum+a[i]; sum=sum+a[i]; (1)对元素逐个赋值。 printf(“sum=%d\n",sum); printf(“sum=%d\n",sum); (2)与循环语句结合。 } } 数组的输出: (1)逐个输出。 (2)与循环语句结合。
61c语言数组PPT教学课件
20
第20页/共92页
for(i=0;i<3;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
a[0]
54 44
a[1]
45 22
a[2]
22 50
a[3]
00 05
a[4]
88 88
a[5]
99 99
21
第21页/共92页
for(i=0;i<2;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
27
第27页/共92页
6.2 怎样定义和引用二维数组
a[0] a[1] a[2]
a[0][0] a[1][0] a[2][0]
a[0][1] a[1][1] a[2][1]
a[0][2] a[1][2] a[2][2]
a[0][3] a[1][3] a[2][3]
28
第28页/共92页
6.2 怎样定义和引用二维数组
31
第31页/共92页
6.2.3二维数组的初始化
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 等价于: int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[ ][4]={{0,0,3},{ },{0,10}};合法
32
3
第3页/共92页
Agenda
• 6.1 怎样定义和引用一维数组 • 6.2 怎样定义和引用二维数组 • 6.3 字符数组
C语言数组详解PPT课件
int a[5] = {1,2,3,4,5};
#include <stdio.h>
void main()
{ a[4]
5
2020
inat [a3[]5]={0,1,2,3,4}; 4
2016
a pfproraaaiirnn[[[(ptt210irnff]]]it((n""t数数i=f(0组组";aai的[<在%数 的5首一d;内组起i]地+个=存+名始%址地)中d表地为址,占其示址:321常%字地数,d量节址组是\n数是",:%a%)d;d\\nn""222,,is000,iaz100[ei284]o,f&(aa[))i];);
#define FD 5
void main()
{
……
int a[3+2],b[7+FD]; int n;
……
scanf("%d",&n);/*表示维
}
数的只能是常量*/
int a[n];
编辑版
6
(一)一维数组(1)——定义及使用
3. 方括号中常量表达式表示数组元素 的个数。如int a[5]: 数组a有5个元 素,其下标从0开始,分别为 a[0],a[1],a[2],a[3],a[4]。 如果出现数
g[i]:第i个学生的成绩等等
编辑版
2
(一)一维数组(1)——定义及使用
类型说明符 int
任一种基 本数据类 型或构造 数据类型。
数组名[常量表达式] a[10]
用户自定义的数组 名字,其定名规则 与变量名定名规则 一样,都需遵循标
识符定名规则
C语言数组教程ppt课件
a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]
输入理想的程序,输出快乐的人生
二维数组元素的引用
• 二维数组元素的引用形式:
数组名[行下标] [列下标];
• 例如:
int a[3][4]; a[0][0]=3; a[0][1]=a[0][0]+10;
a[3][4]=5; /*下标越界*/
数据类型数组名数组大小一维数组可用一个循环动态赋值而二维数组可用二重嵌套循环动态赋值c把数组名解释为该数组第1个元素a0的首地址并且c编译器不检查所引用的数组元素下标是否越界地址传递1值传递方式实参与形参占用不同的内存单元includestdiohvoidswapinttemp
输入理想的程序,输出快乐的人生
for (i=0; i<3; i++) for( j=0; j<4; j++) printf(“%d”, a[i][ j] );
输入理想的程序,输出快乐的人生
二维数组的输入和输出
为一个3行4列的二维数组输入/输出数据
int main() { int a[3][4], i, j; for (i=0; i<3; i++) for (j=0; j<4; j++) scanf(“%d”,&a[i][j]); for (i=0; i<3; i++) { for (j=0; j<4; j++) printf(“%5d”, a[i][j]); printf(“\n”); } return 0;
输入理想的程序,输出快乐的人生
下标越界是大忌!
• int a[10]; scanf("%d",&a[10]); /*下标越界*/ – 编译程序不检查是否越界 – 下标越界,将访问数组以外的空间,可能带来严重后果
C语言数组的定义PPT课件
Page 3
1.为什么要引入数组
前面各章所使用的数据都属于 基本数据类型(整型、实型、字符型) C语言除了提供基本数据类型外,还提供了 构造类型的数据(数组类型、结构体类型、共 同体类型)。 构造数据类型是由基本数据类型的数据按照一 定的规则组成,所以也称为“导出类型”。
Page 4
1.为什么要引入数组
• 下列是不正确的 • Int a=5; • Int b[a];
Page 12
举例: int n;
scanf(“%d”,&n);
int a[n];
/*在程序中临时输入数 组的大小 */
数组说明中其他常见的错误
① float a[0]; /* 数组大小为0没有意义 */
② int b(2)(3); /* 不能使用圆括号 */ ③ int k, a[k]; /* 不能用变量说明数组大小*/
成员 a[0]
a1]
a[2]
a[3]
a[4]
地址 #2000 #2002 #2004 #2006 #2008
Page 15
2、一维数组
4)类型说明:指的是数据元素的类型,可以是 基本数据类型,也可以是构造数据类型。类型 说明确定了每个数据占用的内存字节数。
2 Int a[5]//表示向系统申请了( 5 )x 字节大小的内存空间,共
Page 7
1.为什么要引入数组
下面简单介绍一下数组概念: 1、数组:一组具有相同数据类型的数据的有序的 集合。 2、数组元素:构成数组的数据。数组中的每一个 数组元素具有相同的名称,不同的下标,可以作为 单个变量使用,所以也称为下标变量。 3、数组的下标:是数组元素的位置的一个索引或 指示。 4、数组的维数:数组元素下标的个数。根据数组 的维数可以将数组分为一维、二维、三维、多维数 组。
1.为什么要引入数组
前面各章所使用的数据都属于 基本数据类型(整型、实型、字符型) C语言除了提供基本数据类型外,还提供了 构造类型的数据(数组类型、结构体类型、共 同体类型)。 构造数据类型是由基本数据类型的数据按照一 定的规则组成,所以也称为“导出类型”。
Page 4
1.为什么要引入数组
• 下列是不正确的 • Int a=5; • Int b[a];
Page 12
举例: int n;
scanf(“%d”,&n);
int a[n];
/*在程序中临时输入数 组的大小 */
数组说明中其他常见的错误
① float a[0]; /* 数组大小为0没有意义 */
② int b(2)(3); /* 不能使用圆括号 */ ③ int k, a[k]; /* 不能用变量说明数组大小*/
成员 a[0]
a1]
a[2]
a[3]
a[4]
地址 #2000 #2002 #2004 #2006 #2008
Page 15
2、一维数组
4)类型说明:指的是数据元素的类型,可以是 基本数据类型,也可以是构造数据类型。类型 说明确定了每个数据占用的内存字节数。
2 Int a[5]//表示向系统申请了( 5 )x 字节大小的内存空间,共
Page 7
1.为什么要引入数组
下面简单介绍一下数组概念: 1、数组:一组具有相同数据类型的数据的有序的 集合。 2、数组元素:构成数组的数据。数组中的每一个 数组元素具有相同的名称,不同的下标,可以作为 单个变量使用,所以也称为下标变量。 3、数组的下标:是数组元素的位置的一个索引或 指示。 4、数组的维数:数组元素下标的个数。根据数组 的维数可以将数组分为一维、二维、三维、多维数 组。
c 第七章数组PPT课件
C语言程序设计
第七章 数组
7.1 数组定义
数组是一个由若干同类型变量组成的集合。一维数组的 说明方法为数据类型加数组名,再加方括号,里面含有元素 个数。即:
类型说明符 数组名[常量表达式] 例如,下面得代码说明一个字符数组:
void main() {
char buffer[5]; //… } 主函数中定义了一个字符数组,存储该数组占5个字节。
函数funcA()中定义了一个静态局部数组,它没有显示初 始化,所以默认初始值为0。
下面的代码不能通过编译:
void main() {
int size=50; int array[size]; //… }
下面的代码用常量来规定数组元素个数:
const int size=50; const int n=size*sizeof(int); void main() {
char array[10]={‘h’,’e’,’l’,’l’,’o’,’\0’}; 第一种方法用途较广,初始化时,系统自动在数组没有 填值的位置用’\0’补上。另外,这种方法用的花括号可以省略 ,即能表示成:
char array[10]=“hello”; 第二种方法一次一个元素地初始化数组,如同初始化整
下图表示一个名为a的3行×4列的整型二维数组。可以 看到,第一个下标范围是0~2,第二个下标范围是0~3。 二维数组是按先行后列的顺序在内存中线性排列的。它的 定义如下:
int a[3][4];
通常把有m行和n列的数组称为m×n数组。
数组a中的每个元素用元素名a[i][j]识别,其中,a是数组名 ,i和j是唯一标识数组a中每个元素的下标。
例如,下面的代码对数组进行初始化是错误的:
int array1[5]={1,2,3,4,5,6} int array2[5]={1,,2,3,4}; int array3[5]={1,2,3,};
第七章 数组
7.1 数组定义
数组是一个由若干同类型变量组成的集合。一维数组的 说明方法为数据类型加数组名,再加方括号,里面含有元素 个数。即:
类型说明符 数组名[常量表达式] 例如,下面得代码说明一个字符数组:
void main() {
char buffer[5]; //… } 主函数中定义了一个字符数组,存储该数组占5个字节。
函数funcA()中定义了一个静态局部数组,它没有显示初 始化,所以默认初始值为0。
下面的代码不能通过编译:
void main() {
int size=50; int array[size]; //… }
下面的代码用常量来规定数组元素个数:
const int size=50; const int n=size*sizeof(int); void main() {
char array[10]={‘h’,’e’,’l’,’l’,’o’,’\0’}; 第一种方法用途较广,初始化时,系统自动在数组没有 填值的位置用’\0’补上。另外,这种方法用的花括号可以省略 ,即能表示成:
char array[10]=“hello”; 第二种方法一次一个元素地初始化数组,如同初始化整
下图表示一个名为a的3行×4列的整型二维数组。可以 看到,第一个下标范围是0~2,第二个下标范围是0~3。 二维数组是按先行后列的顺序在内存中线性排列的。它的 定义如下:
int a[3][4];
通常把有m行和n列的数组称为m×n数组。
数组a中的每个元素用元素名a[i][j]识别,其中,a是数组名 ,i和j是唯一标识数组a中每个元素的下标。
例如,下面的代码对数组进行初始化是错误的:
int array1[5]={1,2,3,4,5,6} int array2[5]={1,,2,3,4}; int array3[5]={1,2,3,};
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
srand(time(0));
for(i=0; i<10; i++)
a[i]=rand()%11+5;
for(i=0; i<10; i++)
printf("%5d",a[i]);
printf("\n");
}
作业2:产生[50,90]上的随机整数,求能被5整除的数的和。 作业3:将10个数中所有的偶数除以2,奇数乘以2.
9
5.1.4 一维数组的简单应用
例 5-3、4 求10个学生成绩的最高分、最低分和平均分。
#include "stdio.h"
main( )
{ int i,a[10],min,max;
float average,s;
for(i=0;i<=9;i++) scanf("%d",&a[i]);
max=min=a[0]; s=a[0];
}
0、2、4……的元素赋值给数组n,输出n中内容。 6
二、 一维数组的初始化
⒈ 在定义数组时,对全部数组元素赋初值。
int a[5]={6, 2, 7, -3, 5};
⒉ 只给一部分元素赋值。
int a[5]={6, 2}; int a[5]={6, 2, 0, 0, 0};
等价
⒊ 定义数组时使数组a中全部元素自动赋以0值。
第8周实验
作业1: 从键盘输入20个数到m数组,将下标为0、2、 4……的元素赋值给数组n,输出n中内容
作业2: 产生10个[50,90]上的随机整数,求其中能被5整 除的所有数的和。
作业3: 将10个数(可以随机产生)中所有的偶数除以2 ,奇数乘以2.
作业4:求20个数(可以随机产生)中的最大值和次最大 值。
for(i=1;i<10;i++)
{ if(a[i]<min) min=a[i];
if(a[i]>max) max=a[i];
s+=a[i]; }
average=s/10;
printf("作m业ax5=:%3d0,m个i元n=素%,d,赋av予e=从%27开.2f始", 的m偶ax数,m,in,average);
} 每5个求一个平均值放到另一数组。
10
例5-5 求10个数的最小的值,并将该最小值 与最前面的元素互换(最小值唯一)。
➢ 方法1:
顺序法
-1-12103 12 34 120 6 -21 10 -13 45 63
数组元素变化较大
无法知道最小值原来的位置
➢ 方法2:
选择法
-1103 12 34 2 6 -1 10 -1103 45 63
12
#include <stdio.h>
main( )
作业4:
{int i,j,t, a[10], k; 求20个数中的最大值和次最大值。
for(i=0; i<=9; i++)
int a[10]; 表示数组a共包括10个元素,分别为a[0] ~a[9]。
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
5
2. 一维数组的引用
只能逐个引用数组元素,而不能一次引用整个数组。 引用形式: 数组名[ 下标 ]
例5-1 数组元素的引用。
t t[0] t[1]
t[9] 3
第5章 数 组
➢ 数组的定义和引用 ➢ 对数组元素的操作:
对调、最大值、最小值、平均值、和 ➢ 对整个数组的操作:
产生随机数组、逆序、排序 ➢ 对字符数组的操作:
连接、复制、比较
4
5.1 一维数组
一、 一维数组的定义和引用 1. 定义
整数或整型 常量表达式
类型标识符 数组名[ 数组长度 ];
3570 1 2 3 4 5 6 7 8 9
#include <stdio.h> main( ) {int i,j,t, a[10], k; for(i=0; i<=9; i++)
scanf("%d", &a[i]); for(j=1; j<10; j++)
if(a[j]<a[0]) { t=a[0]; a[0]=a[j]; a[j]=t; } printf("最小值是: %d\n", a[0]); }
产生[a,b]区间上任意整数的方法: rand( )%(b-a+1)+a
srand函数 (头文件time.h) srand(time(0))
用当前时间作为随机数的初始种子
8
#include "time.h"
#include "stdlib.h" main( ) { int i, a[10];
说明: srand函数,可以产生不同的随机数, 此函数包含在"time.h"头文件中。
整型表达式,
main( )
从0开始。
{int i, b[10];
for (i=0; i<10; i++)
bsc[ia]n=fi(;"%d", &b[i]);
for (i=0; i1<、10如; 何i+使+)数组元素为:100~109
printf("2%、作5d业",1:b[i] );
printf("\n从"键);盘输入20个数到m数组,将下标为
static int a[5]; int a[5]={0}度。
int a[3]={1, 2, 3};
等价
int a[ ]={1, 2, 3};
7
三、 随机函数random和rand
2. rand函数的用法: 格式: rand ( ) 说明: (1) 该函数包含在头文件"stdlib.h"中。 (2) 该函数产生0到整型最大值之间的一个随机整数。
作业5: 30个元素,赋予从2开始的偶数,每5个求一个平 均值放到另一数组
作业6:数组为20个整数,求其中的素数。 作业7:教材97 5-6 作业8:实验指导45:6
1
引例: 输入30个学生的成绩,求高于平均成绩的人数。
#include "stdio.h"
main()
变量性质:
{ int i,x,k=0; 能保存多个数据(长度) float s=0,ave; 通过循环访问数据(有序)
for(i=1;i<=30;i++)
{ scanf("%d",&x);
s+=x; } ave=s/30; printf("aver=%f\n",ave); }
for(i=1;i<=30;i++) if(ave<?) k++;
如何保存30个成绩?
2
数组
➢ 定义:有序数据的集合 ➢ 特点:所有元素类型相同 ➢ 要素:数组名、 下标