欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

dxw 数组4

时间:2024-05-11 15:13 作者:admin 点击:
董小号 oooppp111 密码123456 刘小号 akioi123456 密码123456 # 二维数组 二维数组的本质,仍然是一维数组 它是由多个一维数组组合而成 在内存中物理地址连续 ## 初始化(创建) 类型 名[长度

董小号 oooppp111 密码123456

刘小号 akioi123456 密码123456


# 二维数组

二维数组的本质,仍然是一维数组

它是由多个一维数组组合而成

在内存中物理地址连续

## 初始化(创建)

类型 名[长度1][长度2]

长度1代表 一维数量

长度2代表 每个一维的长度

```c++

int a[3][5];//三个长度为5的一维数组组合成的二维数组

int a[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}};

int a[2][3]={{1,2,3},{4,5,6}};//123 456

int a[2][3]={1,2,3,4,5,6};//123 456

int a[2][3]={{1,2},{4}};//120 400

int a[2][3]={1,2,4};//124 000

int a[][3]={1,2,3,4,5,6,7};//123 456 700

//当长度1不写时,通过初始化元素,自动定义大小

int a[3][]={1,2,3,4,5,6,7};//长度2无法确定,报错

```

### 函数初始化

```c++

int a[3][4];

//memset 无影响

memset(a,0,sizeof(a));

//fill 有影响

for(int i=0;i<3;i++){

   fill(a[i],a[i]+4,值);

}

```

## 输入输出模板

```c++

int n,m;

cin>>n>>m;

int a[1050][1050]={};

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

   for(int j=0;j<m;j++){

       cin>>a[i][j];

   }

}

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

   for(int j=0;j<m;j++){

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

   }

   cout<<endl;

}

```

# 矩阵加法

```c++

int n,m;

cin>>n>>m;

int a[1050][1050]={};

int b[1050][1050]={};

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

   for(int j=0;j<m;j++){

       cin>>a[i][j];

   }

}

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

   for(int j=0;j<m;j++){

       cin>>b[i][j];

   }

}

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

   for(int j=0;j<m;j++){

       cout<<a[i][j]+b[i][j]<<" ";

   }

   cout<<endl;

}

```

## 矩阵乘法

```c++

int n,m,k;

cin>>n>>m>>k;

int a[1050][1050]={};

int b[1050][1050]={};

int c[1050][1050]={};

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

   for(int j=0;j<m;j++){

       cin>>a[i][j];

   }

}

for(int i=0;i<m;i++){

   for(int j=0;j<k;j++){

       cin>>b[i][j];

   }

}

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

   for(int j=0;j<k;j++){

       for(int r=0;r<m;r++){

           c[i][j]+=a[i][r]*b[r][j];

       }

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

   }

   cout<<endl;

}

```


# 字符数组

char a[150];

字符数组的功能,与普通数组完全相同。

以下都是字符数组可用的:

## 字符数组的输入输出

另外,字符数组拥有字符串的特性,可以用类似字符串的语法

cin>>a;//整体输入 abcd 只能在无空格时使用

cin.getline(a,150);//整行输入 连带空格都能存


cout<<a;//整体输出

## 字符数组的功能

使用时,确保字符数组中,存在'\0',以保证函数运行正常

### 1、字符数组的有效长度

strlen(a);//string length

从字符数组的第一个元素开始计数,直到遇到空字符('\0',0)停止,返回计数,即长度

char c[5]={'1','2','3','4','5'};

cout<<strlen(c);//不确定

char c[5]={'1','2','3'};

cout<<strlen(c);//3

### 2、字符数组的比较

strcmp(c1,c2);//string compare

从两个数组的第一个元素开始比较,比较ascii值的大小,直到遇到空字符('\0',0),返回数字

返回0 一样大

返回正数 c1大

返回负数 c2大

char c1[3]={'1','2','3'};

char c2[3]={'1','2','3'};

cout<<strcmp(c1,c2);//不确定


## 字符串,默认跟随不占空间的'\0'

char a[100];

cin>>a;和cin.getline(a,100);都是以字符串形式赋值,此时会自带'\0'


## 以字符串对字符数组进行初始化

char a[5]={"abcd"};//存:'a' 'b' 'c' 'd' '\0'

char a[5]={"abcde"};//报错

char a[5]="abcd";//可以省略大括号


# 基础题

输入一句话(英文),对其变形输出

i love china

I Love China

I lovE chinA

# 进阶题

输入一句话(英文),分别变形处理

i love china

i evol anihc

(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%