文档介绍:第七章数组
本章重点:
处理好循环与数组下标的关系,就掌握了数组的核心技术.
数组的赋值方法.
一些典型算法:排序,查找,插入的过程
字符数组和字符串的根本区别在于程序在处理字符串时是以\0作为结束标志的.
字符串不能用赋值语句.
定义方式为:
类型说明符数组名[常量表达式]
例如:int a[10];
数组名后面的常量表达式只能用“[ ]”括起来,不能用“( )”号。
2. 一维数组元素的引用
每次可引用一个数组元素,不能引用整个数组。
一个数组元素就如同一个简单变量.
引用时应注意下标的值不要超过数组长度的范围。
a[0]=a[5]+a[7]-a[2*3] 常量和表达式做下标
a[i]=a[i]+1; 变量做下标
a[a[0]]=>a[1] 数组元素做下标
程序自已输入0-9,然后按逆序输出。
main()
{
int i, a[10];
for (i=0;i<=9;i++) a[i]=i;
for (i=9; i>=0;i--)
printf(“%d”,a[i]);
}
(1)在定义数组时对各元素指定初始值。
int a[10]={1,2,3,4,5,6,7,8,9,10};
等价于
int a[10];
a[0]=1;a[1]=2;a[2]=3; … a[9]=10;
可只对一部分元素赋以初值。
int a[5]={1,3,5};
a[0]=1;a[1]=3;a[2]=5; a[3],a[4]未确定
(3)数组可以不规定维数, 在初始化赋值时, 数组维数从0 开始被连续赋值。
例如:
char f[]={'a', 'b', 'c'};
int a[ ]={1,3,5};
(4)数组不赋初值,系统自动给所有实数组元素赋以0值。数组元素的赋值可以通过赋值语句或scanf函数输入。
:求一组数(10个)的平均与总和。E5_1a
main()
{ int i,sum,a[10];
float av;
for(i=0;i<10;i++)
scanf("%d",&a[i]); /*数据输入*/
sum=0;
for(i=0;i<10;i++) {
printf("%d ",a[i]); /*数据输出。并求和*/
sum=sum+a[i];
}
av=sum/;
printf("%d\n",sum);
printf("%f\n",av);
}
:对10个数由小到大排序(冒泡排序)。
冒泡排序法的基本思想:
将相邻两个数相比较,将小的调到前头。不断比较,直到将最后两数比较处理完毕。每进行一轮,把剩下的数中最大的一个移到最后位置。
#include “”
main()
{ int a[10]={9,8,5,4,2,0,6,1,3,7}
int i, n=10;
for (i=0;i<n-1;i++)
for (j=0;j<n-i;j++)
if (a[j]>a[j+1])
{ temp=a[j],a[j]=a[j+