什么数组
一个包含了多个元素的集合,在程序中数组是使用下标变量来表示数组中的每个元素,数组中的每个变量的数据类型是相同的。
当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。
数组的数据类型 数组名[数组大小]
例如:int array[10]
就表示一个有是个元素的整型数组
一维数组的初始化可以在定义时进行
int a[10] = {1,2,3,4,5,6,7,8,9,0 }
如果括号里只有九个数值,那么数组中的第10个元素直接为0
由于数组元素数量较多,又是以连续的下标来表示数组,所以我们也可以用for循环给数组中的元素进行赋值或初始化
数组的赋值
int a[10];
int i;
for(i = 0;i < 10;i++) //改变数组下标表示不同的元素
{
scanf("%d",&a[i]); //数组的赋值
}
数组的输出也是通过循环来实现
for(i = 0;i < 10;i++)
{
printf("a[%d] = %d",i,a[i]);
}
关于数组里元素的排序
冒泡排序:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数 放后。然后比较第2
个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较
(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个 数),将小数放前中,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
for(i = 0;i < 10;i++)
{
for(j = 0;j < 10;j++)
{
if(a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
选择排序:就是把每一个数跟数组中的每一个元素比较,然后换位置
for(i = 0;i < 10;i++)
{
for(j = 0;j < 10;j++)
{
if(a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
一维数组中,需要注意的是字符数组
字符数组 就是字符型元素的集合
char array[10];
字符数组用于存字符串 它的初始化和整型数组方式相似
char array[12] = {"hello world"}
这是一个大小为12的字符数组,但它包含的元素只有11个,也就是下标为0~10,最后一个的元素为’\0’是确定的