第八章数组知识点总结

8.1 一维数组的定义和初始化
1、数组:一组具有相同类型的变量的集合数组名:用来标识这组相同类型的数据的名字
格式:类型 数组名[第一维长度]
2、数组的大小最好用宏来定义
#define SIZE 5
int a[SIZE];
3、注意:格式:c语言中数组的下标都是从0开始的。在定义数组时,必须用值为正的常量,不能使用变量定义数组的大小。
例如:int score[n]不正确,即使在此之前变量n已被赋值。
8.2 二维数组的定义和初始化
1、格式:
类型 数组名[第一维长度][第二维长度]
分别代表行列的元素数。
2、初始个数可以少于数组元素的个数,系统会自动给后面的元素初始化为0。3、如何使两个数组的值相等
方法一:逐个赋值法
方法二:循环赋值法
int i;
for(i=0;i<5;i++)
{
b[i]=a[i];
}
8.3 向函数传第一维数组
1、若要把一个数组传递给一个函数,那么只要使用不带方括号的数组名作为函数实参调用函数即可。
例如:aver=Average(score,n)
2、数组作函数形参时,数组的长度可以不出现在数组名后面的方括号内,可用另一个整型实参来指定数组的长度。
例如:int Average(int score[],int n)
3、memset(a,0,sizeof(a))作用是把数组a清零
8.4 排序和查找
1、(1)、交换法排序可以利用swap函数交换两个数值或者引入一个变量temp。(2)、选择法排序
2、sort函数用法
#include
using namespace std;
默认的sort函数是按升序排。
sort(aa+n): //两个参数分别为待排序数组的首地址和尾地址
3、(1)、线性查找
(2)、折半查找
当待查找信息有序排列时,用折半比较好。
基本思想:首先选取位于数组中间的元素,将其与查找键进行比。如果它们的值相等,则查找键被找到,返回数组中间元素的下标。否则,将查找的区。小为原来区间的一半,即在一半的数组元素中查找。
4、字符数组的赋值
(1).用字符初始化数组例如:
char chr1[5]=[“a’,‘b’,‘c’,‘d’,‘e’}:
字符数组中也可以存放若干个字符,也可以来存放字符。而字符串有一结束符(”\0’)。字符串是一维数组,但是一维字符数组不等于字符串。
例如:char chr2[5]=(“a’, b’,‘c’,‘d’,’\0’];
即在数组chr2中存放着一个字符串“abcd”
(2).用字符串初始化数组用一个字符串初始化一个一维字符数组,可以写成下列形式:char chr[5]=“abcd “对二维字符数组来讲,可存放若干个字符串。可使用由若干个字符串组成的初始值表给二维字符数组初始化。例如: char chr3[3][4]=(“abc”,“mno”,“xyz”];在数组ch3中存放3个字符串,每个字符串的长度不得大于3.5、字符串的输入与输出
输入
从键盘输入一个字符数组可以使用scanf语句或gets语句。
(1)scanf语句格式:
sconf(”%s”,字符数组名);
说明:系统会自动在输入的字符串常量后添加"\0",标志,因此输入时,仅输入字符串的内容即可。
(2)gets语句格式:
gets(字符数组名);
说明:使用gets只能输入一个字符串。读入的是一整行,包括空格。
例如: scanf("%s",s1); gets(s2);对于相同的输入Hello World!, s1获取的结果仅仅是Hello,而s2获取的结果则是Hello World
输出
向屏幕输出一个字符串可以使用printf语句或puts语句。
(1)printf语句格式:
printf("%s",字符数组名);
(2) puts语句格式: puts(字符串名称);
说明: puts语句输出一个字符串和一个换行。对于已经声明过的字符串。 print("%s\n",a)和puts(a)是等价的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值