数组:包含多项同类数据的数据结构
一维:一个下表区分分量
- 一系列同类型的数据:定义是一个类型
- 同一名字命名:一系列同类型数据的内存起始地址(常量 )
- 用下标标识分量,如a[0]、a[1]、........a[9]等。假设下标用i表示
- a[i]可访问数组的任何一个分量(数组元素 )
- a代表数组
- 下标从0开始
- 合法下标范围:0-n-1
#include<stdio.h>
void main(){
int i,a[10];
}
一般格式
数据类型 数组名[数组长度],数组名是地址常量表达式
例如:int a[10];
说明:
- 数组的数据类型就是数组元素的数据类型
- 数组长度是数组能够包含的数组元素个数,为常量表达式
错误
int n=10;
int a[n];
下表是数组元素的序号,可以是一个整形常量,或整型表达式
c语言规定,数组元素的下标从0开始,当数组长度为n时,最末元素的下标是n-1;
int a[10];
a数组的元素:a[0]、a[1]........a[8]、a[9]
数值型数组的输入、输出通过每一个数组元素的输入、输出实现
char a[10];
输入a[6]:
scanf_s("%c",&a[6]);
输出a[6]:
printf("%6c",a[6]);//a[6]占6位
数值型一维数组的输入、输出
//给数组元素赋值,并通过相邻元素交换的方法,将最大值移到数组最后。
#include<stdio.h>
#define N 10
void main() {
int i, t, a[N];
for (i = 0; i < N; i++) {
printf("the number is (%d/%d):", i + 1, N);
scanf_s("%d", &a[i]);
}
for (i = 0; i < N; ++i)
if (a[i - 1] > a[i])
t = a[i - 1], a[i - 1] = a[i], a[i] = t;
printf("Data Output:\n");
for (i = 0; i < N; i++)
printf("输出数据:%d\n", a[i]);
}
//实现最小的数排到最后
#include<stdio.h>
#define n 10
void main() {
int i, t, a[n];
for (i = 0; i < n;i++) {
printf("the number is (%d/%d):",i+1,n);
scanf_s("%d",&a[i]);
}
for (i = 0; i < n-1; i++)
if (a[i] < a[i+1])
t = a[i], a[i] = a[i+1], a[i+1] = t;
printf("Data Output:\n");
for (i = 0; i < n; i++)
printf("%d\n",a[i]);
}
- 全部元素初始化
- 数据类型 数组名[数组长度]={数组全部元素值表}
- 数据类型 数组名[]={数组全部元素值表};
- int a[6]={10,20,30,40,50,60};
- float r[]={12.5,-3.11,8.6};
- 部分元素的初始化
- 数据类型 数组名[数组长度]={数组全部元素值表};
- int b[10]={1,2,3};//没赋值元素的值默认为0.
- 字符型数组是:据类型的字符型的数组,可用于存储字符串,每一个元素存放一个字符常量
- 对字符数组初始化时,可使用'\0'作为末尾元素值,存储字符串
- char string[8]={'e','x','a','m','p','l','e','\0'};
- 可使用一个字符串常量为字符数组赋初值
- char string[8]="example";
- 系统自动在字符串尾部增加一个结束标志‘\0’
- 元素string[7]自动赋值'\0'
- 若初始化时,省略对数组长度的说明,数组实际长度由系统根据初始化的形式确定
- char string[]="example";
- 数组string的长度为7,内存占8个字节空间