6、数组 指针与字符串

6.1 数组 数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量成为数组的元素。数组属于构造类型。

一维数组的声明: 类型说明符 数组名[常量表达式],若int a[10],a是整形数组,有十个元素,为a[0]……a[9]。

引用:必须先声明后使用,只能逐个引用数组元素,而不能一次引用整个数组。每个元素相当于单个变量。

#include <iostream>

using namespace std;

int main()

{

         int A[10],B[10];

         int i;

         for(i=0;i<10;i++)

         {

                   A[i]=i*2-1;

                   B[10-i-1]=A[i];

         }

         for(i=0;i<10;i++)

         {

                   cout<<"A["<<i<<"]="<<A[i];

                   cout<<" B["<<i<<"]="<<B[i]<<endl;

         }

}

  

数组元素在内存中顺次存放,他们的地址是连续的,数组的名字是数组首元素的内存存放地址,数组名是一个常量,不能被赋值。

6.2 一维数组的初始化

可以在编译阶段使数组得到初值:

在声明数组时对数组元素赋以初值。
例如:static int a[10]={0,1,2,3,4,5,6,7,8,9};

可以只给一部分元素赋初值。如:static int a[10]={0,1,2,3,4};

在对全部数组元素赋初值时,可以不指定数组长度。如:static int a[]={1,2,3,4,5}

例:用数组来处理求Fibonacci数列问题

#include<iostream>

using namespace std;

int main()

{ int i;

  static int f[20]={1,1};//初始化第0、1个数

  for(i=2;i<20;i++) //求第2~19个数

   f[i]=f[i-2]+f[i-1];

  for(i=0;i<20;i++) //输出,每行5个数//

  { if(i%5==0) cout<<endl;

           cout.width(12); //设置输出宽度为12

           cout<<f[i];

  }

}

  

运行结果:

         1       1       2       3       5      

         8       13     21     34     55

         89     144   233   377   610

         987   1597  2584  4181  6765

应用举例:循环从键盘读入若干组选择题答案,计算并输出每组答案的正确率,知道输入ctrl+z为止。每组连续输入5个答案,a~d。

#include <iostream>

using namespace std;

int main()

{ char key[ ]={'a','c','b','a','d'};

  char c;

  int ques=0,numques=5,numcorrect=0;

  cout<<"Enter the "<<numques<<" question tests:"<<endl;

  while(cin.get(c))//从键盘取值

  { if(c != '\n')

            if(c == key[ques])

            { numcorrect++; cout << " "; }

     else cout<<"*";

    else

    { cout<<" Score "<<float(numcorrect)/numques*100<<"%";

      ques = 0;

      numcorrect = 0;

      cout << endl;

      continue;

    }

           ques++;

         }

}

  

运行结果:

acbba

   **  Score  60%

acbad

       Score  100%

abbda

 * **  Score  40%

bdcba

*****  Score  0%

C++——一维数组的更多相关文章

  1. PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?

    如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...

  2. Java语言程序设计(基础篇) 第七章 一维数组

    第七章 一维数组 7.2 数组的基础知识 1.一旦数组被创建,它的大小是固定的.使用一个数组引用变量,通过下标来访问数组中的元素. 2.数组是用来存储数据的集合,但是,通常我们会发现把数组看作一个存储 ...

  3. C语言一维数组、二维数组、结构体的初始化

    C语言数组的初始化表示方法 一.C语言一维数组初始化: (1)在定义数组时对数组元素赋以初值.如: static int a[10]={0,1,2,3,4,5,6,7,8,9}; 经过上面的定义和初始 ...

  4. C语言回顾-整型变量修饰符和一维数组

    1.整型变量修饰符 1)改变整型变量的存储空间 #include <stdio.h> int main(int argc, const char * argv[]) { //改变整型变量占 ...

  5. c语言操作一维数组-3

    C语言选择题#includemain(){double a[15],k;k=fun(a);} 则以下选项中错误的fun函数首部是 ( D)A.double fun(double a[15]) B.do ...

  6. ASP数组全集,多维数组和一维数组[转]

    ASP数组是比较好用的装载大量数据的容器.1 定义数组 有两种方式:DIM和REDIM. DIM定义的是固定个数.数据类型的数组:而REDIM则不同,它可以定义不同类型的数据,也可以定义个数并非固定的 ...

  7. 《数据结构》 java的一维数组的内存结构与其特性

    1{数组的概念: 数组是相同类型变量的集合,可以使用共同的名字引用它.数组也可以被定义为任何类型,可以是一维或者二维的.数组的访问时通过其对应的下标来实现的.数组提供了一种将有联系的信息便利分组的方式 ...

  8. C#的一维数组和二维数组定义方式:

    一维数组: //一维数组定义与初始化 ,, };//第一种方式 , , }; //第二种方式 int[] one3; //第三种方式 one3=,,}; 二维数组: //二维数组定义与初始化 //不规 ...

  9. 【C语言入门教程】4.1 一维数组

    数组与指针涉及到数据在内存中的存储位置问题,数组由连续的存储单元组成,最低地址对应于数组的第一个单元,最高地址对应于数组的最后一个单元.指针是一种特殊的变量,该变量所存放的是内存地址,通过指针变量可访 ...

  10. 问题 A: 【动态规划】采药_二维数组_一维数组

    问题 A: [动态规划]采药 时间限制: 1 Sec  内存限制: 64 MB提交: 35  解决: 15[提交][状态][讨论版] 题目描述 山洞里有一些不同的草药,采每一株都需要一些时间,每一株也 ...

随机推荐

  1. linux find命令mtime/atime/ctime +n -n n 全网最正确的总结

    1.man find 解释: find - search for files in a directory hierarchy,即:在目录下查找文件 2.按文件被修改的时间查询文件 命令格式: fin ...

  2. adworld python-trade | python反编译

    附件是.pyc格式的文件. Python程序中,原始程序代码存储在.py文件里,而Python会在执行.py文件的时候,会将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件 ...

  3. 数据库中查出来的时间多8小时&查询数据正常展示少8小时

    将serverTimezone的配置改为Asia/Shanghaiurl: jdbc:mysql://127.0.0.1:3306/bfc?useUnicode=true&characterE ...

  4. 使用Docker镜像安装saltshaker

    要求 Saltstack < 2019 Python >= 3.6 Mysql >= 5.7.8 (支持Json的Mysql都可以) Redis(无版本要求) RabbitMQ (无 ...

  5. Linux环境搭建及基础操作

    一.Linux环境搭建 1.安装虚拟机软件(VMWare,Parallel) 虚拟机的作用:将本来不是适合当前操作系统的分区虚拟化成适合当前操作系统的分区格式 2.新建虚拟机: 类似买了一台新的电脑, ...

  6. 最短路径算法总结(floyd,dijkstra,bellman-ford)

    继续复习数据结构和算法,总结一下求解最短路径的一些算法. 弗洛伊德(floyd)算法 弗洛伊德算法是最容易理解的最短路径算法,可以求图中任意两点间的最短距离,但时间复杂度高达\(O(n^3)\),主要 ...

  7. JavaScript:JSON对象

    一.JSON对象概念 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScri ...

  8. H5-当你想在出现遮罩的时候,锁住用户的滚动行为,你可以这么做。

    <div class="mask"> <div class="content">我是弹框</div> </div> ...

  9. 小白月赛22 D : 收集纸片

    D:收集纸片 考察点 : 全排列,对数据范围的估计程度 坑点 : 注意算最后回到初始的那步距离 析题得侃 : 一看题目最短路,诶呦,这不是最拿手的 BFS 走最短路吗?哈哈,定睛一看 这么多目的地,这 ...

  10. 1、微服务--为什么有consul,consul注册,心跳检测,服务发现

    一.为什么有consul? 在微服务,每1个服务都是集群式的,订单服务在10台服务器上都有,那么用户的请求到达,获取哪台服务器的订单服务呢?如果10台中的有的订单服务挂了怎么办?10台服务器扛不住了, ...