013day(学习有关一维数组的部分知识)
2017-10-23 20:46
218 查看
172210704111-陈国佳总结《2017年10月23日》【连续013天】
标题:学习有关一维数组的部分知识
内容:A.观看MOOC5.1,5.2,5.3,5.4;
B.(a).通过观看5.1,学习了数组的定义,数组是可以用来表达类型相同的元素的集合,集合名就是数组名。数组里元素的编号叫下标,
定义方法 类型名 数组名[元素个数];(元素个数(数组的长度)必须是常量或常量表达式且为正整数);T a[ N ],(T为类型名)a数组占用大小为N*sizeof(T)。
数组下标一般是0~N-1,若数组a的地址为p,则变量a[i]的地址就是p+i*sizeof(T);
输入10个整数,输出它们的倒序(运用数组);
using namespace std;
#define NUM 10 //使用常量符号便于修改
int a[NUM];//数组一般不要定义在main中,尤其是大数组;
int main ()
{
for(int i=0;i<NUM;++i)
cin>>a[i];
for(int i=NUM-1;i>=0;--i)
cout<<a[i]<<" ";
return 0;
}输入1 2 3 4 5 6 7 8 9 8,输出8 9 8 7 6 5 4 3 2 1;
(b).观看5.2,学习了筛法求n以内素数;
#define MAX_NUM 20
char isPrime[MAX_NUM + 10];//+10可以防止数组越界;最终如果isPrime[i]为1,则i为素数;
int main ()
{
for(int i=2;i<=MAX_NUM;++i)
isPrime[i] =1;
for(int i=2;i<=MAX_NUM;++i){
if(isPrime[i])
for(int j=2*i;j<=MAX_NUM; j+=i)
isPrime[j] = 0;//将i的倍数标记为非素数;
}
for(int i=2;i<=MAX_NUM;++i)
if(isPrime[i])
cout<< i <<endl;
return 0;
}输入20,输出2 3 5 7 11 13 17 19;
(c).观看5.3,5.4;学习了数组初始化和数组越界;
数组初始化 类型名 数组名[常量表达式]={值,值………………};{ }中的数据技即是各元素的初值;
({ }中的值的数量可少于元素个数,未被赋值的元素自动赋0值;当给全部元素赋值时,[ ]中可不填)
通过部分程序了解了如何用数组取代复杂分支结构;
其一:输入1~7,输出"Monday"~"Sunday",其他情况输出“Illegal"
#include<iostream>
#include<string>//使用string必备的“头文件”
using namespace std;
string weekdays[]={ //string是字符串类型
"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
int main()
{
int n;
cin>>n;
if(n>7 || n<1)
cout<<"Illegal";
else
cout<<weekdays[n-1];
return 0;
}
数组越界即元素下标超出范围,但编译器不会报错,是经常出现的大BUG,可能会导致运行出错,元素下标可以是任何整数,导致了越界,
如:int a[10]; a[-2]=10;a[10]=100;可能会写入别的变量的内存空间,或者写入指令的内存空间;
明日计划:学习二维数组;
标题:学习有关一维数组的部分知识
内容:A.观看MOOC5.1,5.2,5.3,5.4;
B.(a).通过观看5.1,学习了数组的定义,数组是可以用来表达类型相同的元素的集合,集合名就是数组名。数组里元素的编号叫下标,
定义方法 类型名 数组名[元素个数];(元素个数(数组的长度)必须是常量或常量表达式且为正整数);T a[ N ],(T为类型名)a数组占用大小为N*sizeof(T)。
数组下标一般是0~N-1,若数组a的地址为p,则变量a[i]的地址就是p+i*sizeof(T);
输入10个整数,输出它们的倒序(运用数组);
using namespace std;
#define NUM 10 //使用常量符号便于修改
int a[NUM];//数组一般不要定义在main中,尤其是大数组;
int main ()
{
for(int i=0;i<NUM;++i)
cin>>a[i];
for(int i=NUM-1;i>=0;--i)
cout<<a[i]<<" ";
return 0;
}输入1 2 3 4 5 6 7 8 9 8,输出8 9 8 7 6 5 4 3 2 1;
(b).观看5.2,学习了筛法求n以内素数;
#define MAX_NUM 20
char isPrime[MAX_NUM + 10];//+10可以防止数组越界;最终如果isPrime[i]为1,则i为素数;
int main ()
{
for(int i=2;i<=MAX_NUM;++i)
isPrime[i] =1;
for(int i=2;i<=MAX_NUM;++i){
if(isPrime[i])
for(int j=2*i;j<=MAX_NUM; j+=i)
isPrime[j] = 0;//将i的倍数标记为非素数;
}
for(int i=2;i<=MAX_NUM;++i)
if(isPrime[i])
cout<< i <<endl;
return 0;
}输入20,输出2 3 5 7 11 13 17 19;
(c).观看5.3,5.4;学习了数组初始化和数组越界;
数组初始化 类型名 数组名[常量表达式]={值,值………………};{ }中的数据技即是各元素的初值;
({ }中的值的数量可少于元素个数,未被赋值的元素自动赋0值;当给全部元素赋值时,[ ]中可不填)
通过部分程序了解了如何用数组取代复杂分支结构;
其一:输入1~7,输出"Monday"~"Sunday",其他情况输出“Illegal"
#include<iostream>
#include<string>//使用string必备的“头文件”
using namespace std;
string weekdays[]={ //string是字符串类型
"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
int main()
{
int n;
cin>>n;
if(n>7 || n<1)
cout<<"Illegal";
else
cout<<weekdays[n-1];
return 0;
}
数组越界即元素下标超出范围,但编译器不会报错,是经常出现的大BUG,可能会导致运行出错,元素下标可以是任何整数,导致了越界,
如:int a[10]; a[-2]=10;a[10]=100;可能会写入别的变量的内存空间,或者写入指令的内存空间;
明日计划:学习二维数组;
相关文章推荐
- headFirst java学习笔记之一:基础知识部分(5.7)
- 个人学习总结的部分java小知识与面试题(一)
- iOS自动化测试之一体化平台搭建过程中需要学习的部分知识
- 前端部分知识学习笔记
- 学习有关进行 Windows Communication Foundation 编程的基础知识
- 学习中收集的一些有关网页UI设计、前端开发的相关知识网址分享,赶紧收藏走起。。。
- 通信部分知识学习整理
- 有关DataForm组件的研究_基础知识和实现服务端批量CURD——Silverlight学习笔记[23]
- CRF与HMM的部分知识学习
- 074day(有关计算机内存知识的学习和位运算的复习)
- uC/OS-II学习笔记-定义全局变量 分类: μc /os ii 系统有关知识 2011-04-04 15:48 580人阅读 评论(0) 收藏
- 开始学习wince移植部分知识-关于wince编译
- 关于spring的有关学习知识总结
- 有关DataForm组件的研究_基础知识和实现服务端批量CURD——Silverlight学习笔记[23]
- 音视频编解码知识学习详解(分多部分进行详细分析)
- 有关支付的相关知识学习ApplePay和支付宝
- 一步一步学习sharepoint2010 workflow 系列第二部分:SharePoint无代码工作流 第7章 自定义表单的基础知识(Custom form fundamentals)
- 东软学习,有关正则文法的部分摘录
- 最近在学习有关ASP.NET一般处理程序的知识。收藏的几个有用的博文
- linux学习入门 基础部分(10)[1.ip基础知识2.配置ip3.gateway 网关 4.dns6 压缩,解压]