v66.数组运算

1.数组的初始化

只是定义数组:
int a[100];
数组的集成初始化:
int a[] = {2,4,6,7,1,3,5,9,13,23,14,32};
  • 直接用大括号给出数组所有元素的初始值
  • 不需要给出数组的大小,编译器会运算
  • 0的补位
int a[4] = {5};
for(int i = 0;i < 13;i++)
{
	printf("%d\t",a[i]);
}
//这段代码的输出会是:5	0	0	0	
  • 所以,将数组初始化为0的操作:
int a[5] = {0};
或者
int a[5];
for(int i = 0;i < 5;i++)
{
	a[i] = 0;
}
  • 初始化时的定位
    在这里插入图片描述

2.数组的大小(长度)计算

  • size of()
    单位是字节byte,一个整数int类型大小是4字节
  • 因为数组内的数据类型都是一样的,所以a[0]所占的大小和其他元素的大小相同
    在这里插入图片描述
int a[] = {1,2,5,7,6,4,32};
int size_a = sizeof(a) / sizeof(a[0]);

3.数组的赋值

在这里插入图片描述

  • 把一个数组赋值给另一个数组的唯一方式:使用遍历循环一 一赋值

4.遍历数组的应用

在这里插入图片描述

  • 对数组进行赋值
  • 初始化数组为0
  • 检查是否存在某一值
  • 找出符合条件的值
  • 对应打印值

5.搜寻 key的程序

在这里插入图片描述在这里插入图片描述

  • 数组作为函数的参数时,不能利用sizeof()来计算数组的大小!同时在形式参数a[]的方框中传入数组的大小也是没有意义的
  • 所以在函数传入的数组参数中,通常再用一个参数来传入数组的大小

6.判断素数

  • 解法一 之前的程序:
    在这里插入图片描述在这里插入图片描述循环的次数可以反应程序的效率
  • 解法二 因为所有的偶数不是素数,就从3开始的奇数开始循环
    在这里插入图片描述
  • 解法三 循环到算数平方根即可:

在这里插入图片描述sqrt()函数,在数学库中可用。求平方根的函数
在这里插入图片描述

  • 解法四 只要拿比x小的素数来测试就好
    在这里插入图片描述
    注意prime[count++] = i是先执行再递增,完成了两件事。在这里插入图片描述可以来个大括号做调试
  • 解法五 构造素数表
    原理:素数的倍数全都是 非素数

在这里插入图片描述// maxNumber表示要区分开在它范围之内的素数;
赋值为0表示为非素数,赋值为1表示为素数;
将数组全部赋值(标记)为1;
从2开始,将2的倍数(在范围内)全部标记为0;
标记为0的数直接跳过,只是循环标记为1的数;
接下来打印数组中标记为1的数,剩下的即为范围内的素数。

  • 关于数组中的子数组
1 int a[][3] = {{0},{1},{2}};
表示三行三列的二维数组,
没有初始化的值使用0补上。
实际上可以将他看做:
int a[][3] = {
    {0, 0, 0},
    {1, 0, 0},
    {2, 0, 0}
};//每个子数组单独占一行。
2 例如,
int a[][4] = {{0},{1},{2}};
他就表示34列的二维数组;
nt a[][4] = {{0},{1},{2}{3}};
就表示44列的二维数组。
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值