文档介绍:第七章数组
掌握一维数组、二维数组的定义、初始化和引用。
掌握字符串和字符数组的概念及其处理函数。
掌握用数组进行编程的技术。
先看一个例子:
例:给出10个儿童的体重,要求计算平均体重
并打印出低于平均体重的数值。
用变量来解决问题:
main()
{
int w1, w2, w3, w4, w5, w6, w7, w8, w9, w10;
int t;
scanf( "%d%d%d%d%d%d%d%d%d%d",&w1,
&w2, &w3, w4, &w5 , &w6, &w7, &w8,
&w9, &w10);
t=(w1+w2+w3+w4+w5+w6+w7+w8+w9+w10)/10;
if( w1 < t ) printf( "%d\n", w1 );
if( w2 < t ) printf( "%d\n", w2 );
if( w3 < t ) printf( "%d\n", w3 );
if( w4 < t ) printf( "% d\n", w4 );
if( w5 < t ) printf( "%d\n", w5 );
if( w6 < t ) printf( "%d\n", w6 );
if( w7 < t ) printf( "%d\n", w7 );
if( w8 < t ) printf( "%d\n", w8 );
if( w9 < t ) printf( "%d\n", w9 );
if( w10 < t ) printf( "%d\n", w10 );
}
用数组来解决问题:
main()
{
int w[10]; /* 定义 1 个整型数组存放体重*/
int t, i;
for( i=0; i<10; i++ ) scanf( "%d", &w[i] );
for( t=0; i=0; i<10; i++ ) t = t + w[i];
t = t/10;
for( i=0; i<10; i++ )
if( w[i] < t )printf( "%d\n", w[i] );
}
数组及其相关概念
数组是一组有序的、类型相同的数据的集合,这些数据被称为数组的元素。
数组下标
每个数组都有一个名字,我们称之为数组名。
为标识数组中的每个元素,我们需要对它们进行编号,这种编号我们称之为数组元素的下标。
由于有了下标,元素在数组中的位置(或排列顺序)就被唯一地确定下来。我们用数组名加上下标就可以准确地访问数组中的某个元素了。
如:w[0]代表数组w中的第一个元素
w[9]代表数组w中的第十个元素
注意:C语言规定下标从0开始。
说明:数组名代表数组的起始地址。
数组元素在内存中是连续存储的。
一维数组的定义和引用
一、一维数组的定义
定义一维数组的一般方式:
类型说明符数组名[常量表达式];
指明数组元素的数据类型
指明数组所含的元素个数
例如:int a[10]; /*定义的整型数组a含10个元素*/
float b[20]; /*定义的实型数组b含20个元素*/
说明:
⑴数组名的命名规则同变量名的命名规则一样;
⑵数组名后用方括号[ ],不能用()
⑶常量表达式必须是大于0的整型常量表达式,不
能包含变量。即C语言不允许对数组的大小作动
态定义,即定义数组时,数组的长度必须是确
定的,其大小不依赖程序运行过程中变量的值。
int a(10);
例如:
int n;
int a[n]
char name[0];
float weight[];
float array[-100];
二、一维数组的初始化
1 .定义时初始化
方法:将初值依此写在花括号{ }内。
如: int a[5]={ 2 , 4 , 6 , 8 , 10 };
存储形式:
存储单元
说明:
⑴如果在定义一维数组时给出了全部元素的初值,则数组的下标允许省略。此时编译系统将自动根据初始化数据的个数来确定数组的长度。
如: int a[ ]={ 2 , 4 , 6 , 8 , 10 };
int a[ ]; ╳
⑵初始化的数据个数允许少于数组的长度,但不
能多于数组的长度。当初始化的数据个数(至
少要有一个)少于数组的长度时,未初始化部
分将被编译系统自动用 0 赋值。
如:int a[5]={ 2 , 4 };
相当于:a[0]=2, a[1]=4, a[2]=0, a[3]=0, a[4]=0
int a[5]={1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }; ╳