董小号 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) |