一、一维数组
1、定义一个一维数组:
(1)格式:存储类别 类型标识符 数组名标识符[常量表达式]
(2)例子:static int a[10]
(3)注意:定义数组时数组的元素必须是常量,不能是变量,例如int n=3;int a[n] 这是不对的。
2、对数组的引用:
(1)引用形式:数组名[下标] 例如 a[2]
( 2) 注意数组的下标是由0开始,如a[3] 表示有三个元素 分别是a[0],a[1] ,a[2] .如果你用a[3]访问第三个元素是错误的。
(3)对数组的遍历:如果要一次访问数组的全部元素,则只能使用遍历的形式,如下
代码如下 | 复制代码 |
for(int i=0;i<5;i++){ |
(4)怎么输入数组?
注意不能整体一下子输入数组,如果你想scanf(“%d,”,a);其中a是数组,这样只能够输入a[0],因为数组名代表的就是数组的首地址,它与scanf(“%d,”,&a[0]);等价。如果想全部输入,则需要使用循环的方式:
例如:
代码如下 | 复制代码 |
for(int i=0;i<5;i++){ scanf(“d%n”,&a[i]); } |
3、数组的存储结构:
(1)有一个整型数组a,里面有4个元素,知道了第一个元素的内存地址是1000,怎么求出第三个元素的内存地址 ?
解:c语言为数组开辟了连续的存储单元,每个元素都会占据一样的字节数,由于整型一般是占据2个字节,所以每个元素都会占据2个字节的内存空间,数组的其实地址是1000,所以第二个元素的地址是1002,第三个是1004,第四个是1006.
根据这个原理,可以得出一个公式:
数组的元素地址 = 数组的起始地址 + 元素下标 x sizeof(数组类型)
数组的初始化:
解:初始化的方式有:int a[5] = {0,1} 或者 nt a[5] = {0,1,5,4,3}
注意:如果元素的长度不够,系统会自动为后面的元素补0,就像第一个a[5] = {0,1},就相当于a[5] = {0,1,0,0,0}。千万不要多了,这样会导致溢出,例如a[5] = {0,1,5,4,3,0,5}就是错误的行为。
例如:
代码如下 | 复制代码 |
int a[10]; 说明整型数组a,有10个元素。 float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。 |
利用数据进行排序(起泡排序)
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。
源程序如下:
代码如下 | 复制代码 |
#define N 10 #include"stdio.h" main() { int a[N],i,j,temp; printf("please input %d numbersn",N); for(i=0;i scanf("%d",&a[i]); for(i=0;i for(j=0;j { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } printf("the array after sort:n"); for(i=0;i printf("%5d",a[i]); } |
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔