2018-19学年第一学期程序设计A课程笔记12月24日第三篇

c语言已经学了一个学期了,我已经掌握了差不多所有的基本语句了,今天就来介绍一下最后一种语句,数组!
一.知识点总结
1.数组简单的来说就是按顺序排列的一组同种类型的数据构成的集合。
一个数组在内存中占一片连续的储存单元,构成数组的每个数据项称为数组元素(Element)。c程序通过数组的下标实现对数组元素的访问。
例如,在下面的程序中,可以定义如下数组来储存5个学生的成绩。
int score[5]
在该声明语句中,int代表该数组的基类,即数组中元素的类型。下表的个数表明数组的维数。
(注意:c语言中数组得到下标都是从0开始的)
2.Int a[5]
a是这组数据存放的首地址。
而int a[n]就不正确,因为n是变量,在定义数组时不能使用变量定义数组的大小。
3.一维数组的定义
当数组中每个元素只带有一个下标时,我们称这样的数组为一维数组。
数组的定义格式如下:
类型标识符 数组名【常量表达式】
说明:数组名的命名规则与变量名规格一致
   常量表达式表示数组元素的个数。可以是常量和符号常量,但不能是变量。
C++语言规定,使用数组时,要注意:
(1)数组元素的下标值为正整数;
(2)在定义元素个数的下标范围内使用;
然而,在程序中把下标写成负数、大于数组元素个数时,程序编译的时候是不会出错误的。然而,它们要访问的数组元素并不在数组的存储空间的,这种现象叫数组越界
所以就出现了像while(month<1||month>12);
这样的语句,处理不合法数据的输入,保证输入数据合法!
4.二维数组的定义
当一维数组元素的类型也是一维数组是,便构成了“数组的数组”,即二维数组。
二维数组定义的一般格式:
数据类型 数组名【常量表达式1】【常量表达式2】;
一维数组在内存中占用的字节数为:数组长度×sizeof(基类型),二维数组占用的字节数:第一维长度×第二维长度×sizeof(基类型)
(注意,数组第二维的长度声明永远都不能省略)
(二维数组的零行零列一般不存放数据,而是放一些特殊的数据)
5.字符类型
字符类型定义:字符类型为由一个字符组成的字符常量或字符变量。
字符常量定义:
  const
  字符常数=‘字符’
  字符变量定义:
  char字符变量;
  字符类型是一个有序类型,字符的大小顺序按其ASCII代码的大小而定。
6.字符数组
字符数组是指元素为字符的数组。字符数组是用来存放字符序列或字符串的。字符数组也有一维、二维和三维之分。
字符数组的定义格式和一般数组是相同的。
7.字符串的输入与输出
(1)输入
可以使用scanf和gets语句。gets语句比scanf语句有明显的优势就是可以读空格。
(2)输出
输出可以用printf语句和puts语句
二.应用
如矩阵的交换行:
在main函数中,生成一个55的矩阵,输入矩阵数据,并输入n,m的值。判断n,m是否在数组范围内,如果不在,则输出error;如果在范围内,则将n行和m行交换,输出交换n,m后的新矩阵。
【输入】
5
5矩阵的数据,以及n和m的值。
【输出】
如果不可交换,则输出error。
如果可交换,则输出新矩阵。每个矩阵元素输出宽度为4。
【输入示例】
1 2 2 12
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
3 0 8 2 4
0 4
【输出示例】
3 0 8 2 4
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
1 2 2 1 2
代码:
#include
using namespace std;
int main()
{int n,i,j,m;
int a[6][6];
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{
cin>>a[i][j];
}
}
cin>>m>>n;
for(j=1;j<=5;j++)
swap(a[m][j],a[n][j]);
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{cout<<a[i][j]<<" ";}
cout<<endl;}
return 0;
}
这只是很简单的问题之一,用数组可以解决更多复杂难解的问题!
三.感想
我认为数组让我又站在了更高的一个层次上去解决问题,自从学会了数组以后发现以前的问题竟然如之只简单,
虽然数组解决问题非常好用,但是我对数组运用的还是不够熟练,希望以后自己多加练习,争取完全掌握,去解决更多的问题。另外感谢我的指导老师对我严格的教导,让我真正的学到了一些东西!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值