程序设计a课程笔记3

数组
一、一维数组
1、数组是按顺序排列的一组具有相同类型的变量的集合。
数据类型 数组名 [整数1]
2、数值大小必须是值为正的常量。
int a[5] 下标的个数表明数组的维数
★注意,C语言中数组的下标都是从0开始的。
3、一个数组在内存中占一片连续的存储单元。
★注意,引用数组元素时下标可以是整型变量。例如引用score的第i个元素用score[i],但在定义数组时不能使用变量定义数组的大小。
★注意数组不能越界,定义数组时应定义略大一点。
4、定义但未初始化的数组元素的值仍然是随机数。
对一位数组进行初始化时可用int score[5]={90,80,70,100,95}
int score[ ]={90,80,70,100,95}
5、引用a[0](数组a中第一个元素 )
6、a[5] b[5] 将数组a赋给数组b
for(i=0;i<=5,i++)
b[i]=a[i]
7、memset(a,0,size of(a)) 算出a字节,把所有字节赋值为0。仅限赋值(0,1)其他都不准。
8、int a [10]
int main( )
数组定义为全局数组

二、二维数组
1、类型 数组名[第一维长度]
[第二维长度]
当第一维元素的类型 也是一维数组时便构成了“数组”的数组。
2、一维数组在内容中占用的字节数为:数组长度size of(基类型),二维数组占用的字节数为:第一维长度×第二维长度×size of(基类型)。
3、一维字符数组最后为“\0”==字符串
“a\0”可为字符串常量
int b[2][2] b[0][[0],b [0][1] ,b [1][0] ,b[1][1]。
在计算机内部与二维数组一样
二维可转化为一维处理
三、字符数组
scanf(“%s”,字符数组名);空格停
gets包含空格,不包含回车=cin getline()
abc ST [ i ]++ → bcd
strlen (st )求字符数组st的长度。
四、应用
关房门,约瑟夫问题,选择排序,冒泡排序,插序,折半查找。
1、C++sort数用法
#include
using namespace std;
默认的sort函数是按升序排。
sort(a,a+n);//两个参数分别为待排序数组的首地址和尾地址
2、例:在递增序列中查找指定元素
low=0,high=n-1,mid=0;
while(low<=high)

mid=(low+high)/2;if(a[mid]>temp)
high=mid-1;
else if(a[mid]<temp)
low=mid+1;else
couture<<a[mid]<<endl;

折半查找
}
cout<<“Not Found!”<<endl;}
3、冒泡排序
//定义数组#include
#include
using namespace std;
const int n=10;int t,a[n+1];
int main()
{for (int i=1; i<=n; ++i)
cin>>a[i];
for (int j=1;j<=n-1;++j) //冒泡法排序for (int i=1; i<=n-j; ++i) //两两相比较if (a[j]<a[i+1]) //比较与交换{t=a[i]; a[i]=a[i+1]; a[i+1]=t;}
for (int i=1; i<=n; ++i)
cout<<setw(5)<<a[i];
cout<<end;return 0;//输入十个数//输出排序后的十个数运行结果:
输入: 2 5861234 652216 55
输出: 65 5534221612865 2
五、感想
最近一段时间,代码打到崩溃,确实学到了好多知识,发现突击这种东西好像不靠谱,还是重在平时一点点的练习,
每天思考几道题,感觉收获很大,但这并是很容易能坚持下去的,希望自己能按自己想的那样坚持下去。加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值