第四章数组
一维数组
1 一维数组的概念
数组—就是有序并具有相同性质类型的数据的集合
2 一维数组的定义
一维数组是一种整体定义,个别是用的数据结构。特点如下:
名字:数组名,用统一的数组名和下标来唯一的确定数组中的元素
类型:数组中的每一个元素都属于同一数据类型
元素数:数组元素的个数
存储:连续存储
定义格式:
类型数组名[元素个数]
例:
int pk[54];
一维数组及其定义
例如:
int a[10];
unsigned long a[20];
char *s[5];
char *f[];
说明:
(1) 数组都是以0作为第一个元素的下标, 因此, 当说明一个int a[16] 的整型数组时, 表明该数组有16个元素, a[0]~a[15], 一个元素为一个整型变量。
(2) 大多数字符串用一维数组表示。数组元素的多少表示字符串长度, 数组名表示字符串中第一个字符的地址, 例如在语句char str[ 8] 说明的数组中存入“hello”字符串后, str表示第一个字母“h”所在的内存单元地址。str[0] 存放的是字母“h”的ASCII码值, 以此类推, str[4]存入的是字母“o”的ASCII码值, str[5]则应存放字符串终止符‘\0’。
(3) C对数组不作边界检查。例如用下面语句说明两个数组 char str1[5], str2[6]; 当赋给str1一个字符串"ABCDEFG"时, 只有"ABCDE"被赋给, "E" 将会自动的赋给str2, 这点应特别注意。
一维数组及其定义
一维数组
3 一维数组的初始化
格式:
类型说明符数组名[常量表达式]={初值 1,初值 2,……};
给数组 a各元素赋以初值。例如:
int a[10]= {0,1,2,3,4,5,6,7,8,9};
如果想使一个数组中全部元素值为 0,可以写成:
int a[10]= {0,0,0,0,0,0,0,0,0,0};
或 static int a[10];
在对全部数组元素赋初值时,可以不指定数组长度:
int a[]= {1,2,3,4,5};
可以只给一部分元素赋初值。例如:
int a[10]= {0,1,2,3,4};
省略形式
int a[]= {1,,,4,5};//两元素不初始化或为0
一维数组及其定义
一维数组
4 维数组元素的使用
引用形式:
数组名[下标]
说明:
下标是整型表达式,数组元素与同类型的变量使用方法相同,数组下标范围为0~n-1(n为数组长度),注意防止数组下标越界。
例:
a[0]=a[5]+a[j]*3;
例:
int main(void)
{ int i,a[10];
printf("请输入 10 个数组元素值:");
for(i=0;i<=9;i++) //自动赋值
a[i]=i;
for(i=0;i<=9;i++)
printf("%d",a[i]);
}
一维数组及其定义
一维数组
例1:将一个一维数组中的元素逆转。
#include ""
int main(void)
{ int k,t,i;
int a[9]={1,2,3,4,5,6,7,8,9 };
for (k=0; k<9; k++) /*输出原数组中的元素*/
printf("%4d",a[k]);
printf("\n");
i=9;
for (k=0;k<=i/2-1; k++) /*数组中的元素逆转*/
{
t=a[k];
a[k]=a[n-k-1];
a[n-k-1]=t;
}
for (k=0; k<9; k++) /*输出逆转后数组中的元素*/
printf("%4d",a[k]);
printf("\n");
}
一维数组应用举例
运行结果:
1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1
一维数组
例2:输入6个分数,计算平均分,最小值和最大值。
#include ""
#include ""
#define N 6 /*定义符号常量N(分数个数)*/
int main(void)
{ int score[N], i, sum, max, min;
printf(" Please input %d score: ", N);
for(i = 0; i < N; i++)
scanf("%d", &score[i]);
sum = max = min = score[0];
第四章 数组 来自淘豆网www.taodocs.com转载请标明出处.