C# · 12月 20, 2021

c语言数组

数组## 标题

数组包括一位数组和二维数组都是由数组名加上常量组成也可以是const定义的变量斜体样式

例如

int a[];或者 const int[];

数组,从字面上理解就是有 有数的组合。描述一组相同数据。

数据的创建与初始化

数据的出现一定要初始化,初始化分为静态初始化动态初始化

例如

int arr1[3] = {1,2,3};

int arr2[] = {1,3};

动态初始化new int

用数组名作函数参数

用数组元素作函数实参

用数组名作函数参数

用多维数组名作函数参数注意[对形参数组生命史必须指定第二维的大小且英语十餐的第二位大小相同]

字符数组## 标题

用来存放字符数据的数组是字符数组 每一个元素存放一个字符

定义与初始化

char c[10];

初始化可以将逐个字符赋给数据中的各元素

赋值与引用

只能对字符数组的元素赋值而不能对整个数组赋值加粗样式

结束标志’’(注意不是空格字符)

字符数组的输入输出

字符串用str表示

注意输出的字符不包括结束符’’斜体样式

字符串处理函数

字符串连接函数strcat(char,const char)

作用是第二个字符数组中的字符串连接到前面字符数组字符串的后面

字符串复制函数strecy(char,const char)

作用是将第二个字符数组中的字符串复制到第一个字符数组中去

字符串比较函数strcmp(const char,const char)比较结果有三种

字符串1=字符串2函数值为0

字符串1>字符串2函数值为一正整数

字符串1<字符串2函数值为一负整数

比较规则与其它语言中的规则相同,即对两个字符串自左至右逐个字符相比加粗样式## 标题

字符串长度函数strlen(const char)

数组一般,有几种常用方式

起泡法

行与列的互换

打擂台算法(求最大值)加粗样式

例如

#include

#include

using namespace std;

const int N = 9;

int A[N][N],B[N][N];

int X[8] = {-1,-1,1,0};

int Y[8] = {-1,-1};

int main()

{

int n = 9,t,r,c;

cin >> A[4][4] >> t;

for (int d=0; d<t; d++)

{

for (int i=0; i<n; i++)

{

for (int j=0; j<n; j++)

{

if (A[i][j] == 0)

continue;

B[i][j] += A[i][j] * 2;

for (int k=0; k<8; k++)

{

r = i+X[k];

c = j+Y[k];

if (r>=0 && r=0 && c<n)

B[r][c] += A[i][j];

}

}

}

for (int i=0; i<n; i++)

{

for (int j=0; j<n; j++)

{

A[i][j] = B[i][j];

B[i][j] = 0;

}

}

}

for (int i=0; i<n; i++)

{

for (int j=0; j<n; j++)

{

cout << A[i][j] << " ";

}

cout << endl;

}

return 0;

}

注意

相反处理a[j]=!a[j]

左移扩大右移缩小

下标值一定要在数职的定义范围内

默认sort函数是升序排列

例如sort(a,a+n)

二维数组的排序是按行存放(先顺序滴杭再放第二行)

数组名后面一定要接常量