1.使用数组的目的:存放相同属性的数据,数组元素由数组名加下标决定
2.用循环语句进行对数组元素的遍历访问。一维数组初始化格式
int a[10]={2,4,5,3,5,3};
没有全部赋值时,方法后面4个元素默认为0;方括号里面的数字所见即所得,是一个含有10个元素的数组;
3.起泡法对10个数排序(从小到大)
思路:第一轮第一次将第一个数与第二个比较,如果第一个比第二个大,交换两者位置:第二次比较第2个数和第3个数,以此类推;第一轮一共需要比较9次;然后进行第二轮比较。
规律:n个数需要比较(n-1)轮,第j轮比较要比较(n-j)次。
可以用一个二重循环实现:
for(j=1;j<=9;j++) //9轮
for(i=1;i<=10-j;i++) //n-j次
if(a[i]>a[i+1])
t=a[i];a[i]=a[i+1];a[i+1]=t;
4.二维数组
float a[3][4]
可看成3行4列矩阵(所见即所得),元素最大下标 a[2][3];
二维数组初始化方法:
1).int a[3][4]={{1,2,3,4},{3,4,5,6},{}} //按行加花括号
2).int a[3][4]={ ,, ,, ,} //按顺序写在一个括号里,先行后列
3).int a[3][4]={{1},{4},{5}} //表示对各行第一列元素赋值
4).对全部元素赋值时,定义数组第一维长度可以不指定,但第二维长度不能省
5).用二重循环完成二维数组元素的访问
*5.1数组元素作函数参数:相当于变量
5.2数组名作函数参数
数组名可以做函数实参和形参,传递的是数组的起始地址,跟变量作函数参数的区别:用数组名作函数形参时,如果改变了形参数组元素的值(注意:是带“*”的),将同时改变实参数组元素的值。c++把形参当作一个指针变量来处理,用来接受从实参传过来的地址。数组名代表数组第一个元素的地址。(形变则实变) 数组名可看作指针。注意:我们改变的是数组元素的值(带有[ ]或者带有*),而不是地址。
函数调用放在循环语句里面,可以调用多次;
6.选择法对数组中的10个数排序(从小到大)
思路:先将10个数中最小的数与a[0]对换,a[1]到a[9]中最小的数与a[1]交换,共比较9轮;
代码如下:
void select_sort(int array[ ],int n) //定义一个有参但没有返回值的函数
{int i,j,k,t;
for(i=0;i<n-1;i++) //比较n-1轮
{k=i; //对最小数的下标进行初始化为i;
for(j=i+1;j<n;j++) //从后面的第一个数开始依次比较,需要比较n-j次
if(array[j]<array[k]) k=j; //k存放的是最小数的下标,如果比该元素小,对k进行更新
t=array[k];array[k]=array[i];array[i]=t; //交换最小数和array[i]的位置
}
}
7.字符数组
char c[10]={'a',' ','4','i'}; //用单引号括起来,初值个数小于数组长度,其余的自动补'\0';含10个字符的字符串占11个字节
应用:设计钻石图形.(打星花)
只能对字符数组的元素赋值,而不可以用赋值语句对整个数组赋值
可以用字符串对字符数组初始化,比如 char str[]="I am happy";
字符数组的输入输出有两种方法:
1)逐个字符
2)一次性整个字符串
输出字符串时,系统以'\0'作为结束标志
8.使用字符串函数对字符串进行操作
#include <string.h>或<string>
1)字符串连接函数 strcat 作用:将第二个连接到第一个后面
调用方式:strcat(str1,str2)
2)字符串复制函数 strcpy 作用:将第二个覆盖到第一个;(可以指定前n个覆盖);可以用它对另外一个字符数组赋值
3)字符串比较函数strcmp 按照AscII码
比较结果 返回值
相等 0
小于 负整数
大于 正整数
用法:if(strcmp(str1,str2)>0) cout<<"yes";
4)字符串长度函数strlen 作用:测试字符串的实际长度(不包括'\0')
9.实例:用strcmp函数找出3个国家名按照字母顺序排在最前面的国家
10.用字符数组存放字符串并不安全,因为数组是有一定大小的
c++提供了一种新的数据类型:字符串类型string类,它与int float类似,可以用来定义变量。它是标准库里声明的一个类,用这个类可以用来定义对象
定义与初始化:string string1="China";
也可对已定义的字符串变量赋值为另一个字符串,不必顾虑长度。
字符串变量的运算:
赋值:赋值号string1=string2;
连接:加号 string1+string2;
比较:关系运算符
11.字符串数组:与字符数组的区别:元素由单个字符变成字符串
12.归纳:c++对字符串的处理有两种:c-string方法和string方法,前者是c语言采取的方法