文档介绍:第四章
问题:给一组数排序,这组数该 如何存放呢
??? 这些数据如何存放才便于排序
8
2
9
4
5
6
3
7
6
1
7
1
8
8
8
8
8
8
8
8
8
8
1
1de <>
main()
{
int a[5]={1,2,3,4,5,6};
int i;
for(i=0;i<5;i++)
printf("%d ",a[i]);
printf("\n");
}
3、如果想使一个数组中全部元素值为0,可以写成:
int a[10]={0,0,0,0,0,0,0,0,0,0};
或int a[10]={0};
不能写成:int a[10]={0*10};
2、可以只给一部分元素赋值。
例如: int a[10]={0,1,2,3,4};
定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。
它的含义是第一个元素初始化为0,而不对十个元素的初始化.
4、在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。
例如:int a[5]={1,2,3,4,5};
也可以写成 int a[]={1,2,3,4,5};
int a[10]={1,2,3,4,5}; 只初始化前5个元素,后5个元素为0。
2009年9月全国计算机二级考试原题
例、有以下程序
#include <>
main( )
{ int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{
case 0:switch(a[i]%2)
{
case 0:a[i]++;break;
case 1:a[i]--;
}break;
case 1:a[i]=0;
}
for(i=0;i<4;i++) printf("%d ",a[i]); printf("\n");
}
程序运行后的输出结果是( )
A)3344                 B)2050          
C)3040                  D)0304
C
例、用数组来处理,求解Fibonacci数列。
程序实例:
#include <>
void main()
{
int i;
int f[20]={1,1};
Fibonacci数列公式:已知: a1=a2=1 an=an-1+an-2
即:1,1,2,3,5,8,13
四、一维数组应用
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0) printf(″\n″);
printf(″%12d″,f[i])
} /*For循环结束*/
} /*程序结束*/
运行结果如下:
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
987 1597 2584 4181 6765
if语句用来控制换行,每行输出5个数据。
程序举例2:用起泡法(也你为冒泡法)对10个数排序(由小到大)。
第
一
趟
比
较
经过第一趟(共5次比较与交换)后,最大的数9已“沉底” 。然后进行对余下的前面5个数第二趟比较,
第
二
趟
比
较
如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。
例
38 49 65 76 13 27 30 97
第一趟
38 49 65 13 27 30 76
第二趟
38 49 13 27 30 65
第三趟
38 13 27 30 49
第四趟
13 27 30 38
第五趟
13 27 30
第六趟
49 38 65 97