C语言的数组运算,C语言程序设计之数组运算(29页)-原创力文档

8.2-1 数组的运算

• 在⼀组给定的数据中,如何找出某个数据是否存在?

数组的集成初始化

• 直接⽤⼤括号给出数组的所有元素的初始值

• 不需要给出数组的⼤⼩,编译器替你数数

• 如果给出了数组的⼤⼩,但是后⾯的初始值数量不⾜,

则其后的元素被初始化为0

集成初始化时的定位

Y!

C99 ONL

• ⽤[n]在初始化数据中给出定位

• 没有定位的数据接在前⾯的位置后⾯

• 其他位置的值补零

• 也可以不给出数组⼤⼩,让编译器算

• 特别适合初始数据稀疏的数组

数组的⼤⼩

• sizeof给出整个数组所占据的内容的⼤⼩,单位是字

• 可扩展性!

sizeof(a[0])给出数组中单个元素的⼤⼩,于是相除就

得到了数组的单元个数

• 这样的代码,⼀旦修改数组中初始的数据,不需要修

改遍历的代码

数组的赋值

• 数组变量本⾝不能被赋值

• 要把⼀个数组的所有元素交给另⼀个数组,必须采⽤

遍历

遍历数组

• 通常都是使⽤for循环,让循环变量i从0到

度,这样循环体内最⼤的i正好是数组最⼤的有效下标

• 常⻅错误是:

• 循环结束条件是<=数组⻓度,或;

• 离开循环后,继续⽤i的值来做数组元素的下标!

数组作为函数参数时,往往必须再⽤另⼀个参数来传⼊数组的⼤⼩

• 数组作为函数的参数时:

• 不能在[]中给出数组的⼤⼩

• 不能再利⽤sizeof来计算数组的元

素个数!

8.2-2数组的例⼦:素数

判断素数

从2到x-1测试是否可以整除

• 对于n要循环n-1遍

• 当n很⼤时就是n遍

去掉偶数后,从3到x-1 ,每次加2

• 如果x是偶数,⽴刻

• 否则要循环(n-3)/2+1遍

• 当n很⼤时就是n/2遍

⽆须到x-1 ,到sqrt(x)就够了

• 只需要循环sqrt(x)遍

sqrt

判断是否能被已知的且

的素数整除

构造素数表

• 欲构造n以内的素数表

1. 令x为2

2. 将2x、3x、4x直⾄ax

3. 令x为下⼀个没有被标记为⾮素数的数,重复2 ;直

到所有的数都已经尝试完毕

构造素数表

• 欲构造n以内(不含)的素数表

1. 开辟prime[n] ,初始化其所有元素为1,prime[x]为1

表⽰x是素数

2. 令x=2

3. 如果x是素数,则对于(i=2;x*i

4. 令x++ ,如果x

构造素数表

• 算法不⼀定和⼈的思考⽅式相同

8.2-3 ⼆维数组

⼆维数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值