2018---2019 c语言课堂笔记(数组)

                             第五章 数组

第一节 一维数组
在c++语言中, 具有下标性质的数据类型是数组。当处理数据比较多时,需要用到数组的知识。
ex.读入五十个学生的成绩
for(int i=1;i<=1;++i) cin>>a【i】;

数组的定义格式如下:

类型标识符 数组名[常量表达式]
说明:
①数组名的命名规则与变量名的命名规则一致
②常量表达式表示数组元素的个数。可以是常量或符号常量,不能为变量。
int a[10]; //数组a的定义是合法的
int a[n]; //若n为变量,则数组a的定义是非法的
a是一维数组的数组名,该数组有10个元素,依次表示为a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]。需要注意的是,a[10]不属于这一个数组的空间范围中。对a的访问就是访问数据的的首地址

数组的初始化可以在定义时一并完成。格式如下:
int a[5]={1,2,3,4,5};
特别地,若要把数组中所有元素全部初始化为0,可以简记为:{0}。

访问的数组元素并不在数组的存储空间的,这种现象叫数组越界。
按输入时的逆序把数输出出来:
#include
using namespace std;
int a[100];
int main()
{
int x,n=0;
while(cin>>x)
a[n]=x;n++;
for(int i=n-1;i>=1;–i)
cout<<a[i];
cout<<a[0];
return 0;}

第二节 二维数组

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。

例如:
float a[3][4],b[5][10];
定义a为34(3行4列)的数组,b为510(5行10列)的数组。注意,不能写成
float a[3,4],b[5,10];

转置矩阵
其中A, B是m*n矩阵:
void tramat(matrix A,matrix B)
{ int i,j;
for(i=0; i<m; i++)
for(j=0;j<n;j++)
B[j]=A[j];
}

矩阵相加
//其中A,B,C是m*n矩阵:
void addmat(matrix C, matrix A, matrix B)
{
int i, j;
for(i=0; i<m; i++)
for(j=0;j<n;j++)
c[j] = A[j] + B[j];
}

矩阵相乘
//其中A是mn矩阵,B是n1矩阵,C为m*1矩阵
void mutmat(matrix C, matrix A, matrix B)
{
int i, j, k;
for(i=0; i<m; i++)
for(j=0; j<i; j++)
{
C[j]=0;
for(k=0; k<n; k++)
C[j] = C[j] + A[k] * B[k[j];}}

第三节 字符类型和字符数组
一维存储一个字符串;二维存储若干个字符串
‘\0’表示一个结束符(隐含字符)
在这里插入图片描述

感悟与思考:学习了数组之后,发现数组比之前的分支结构,循环结构更灵活,更难理解。有些题目目前做起来十分的不熟练甚至没有思路,希望通过看课本,真正理解代码的书写,慢慢进步。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值