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. css3基本选择器+属性选择器+动态伪类+UI状态伪类+结构类

    后代选择器 祖先元素 后代元素{ } 子元素选择器(直接子元素选择器) 父元素>子元素{ } 兄弟选择器 元素+兄弟元素(紧邻该元素之后的下一个兄弟元素) 所有兄弟元素选择器 元素~兄弟元素(该 ...

  2. 数据结构(集合)学习之Set

    集合 框架关系图: Collection接口下面有三个子接口:List.Set.Queue.此篇是关于Set<E>的简单学习总结. 补充:HashTable父类是Dictionary,不是 ...

  3. PHP0011:学生信息管理案例

    PHP中 html js 混合用

  4. web攻击与防御

    攻击方式 利用输出值转义漏洞 跨站脚本攻击(XSS) SQL注入攻击 OS命令注入攻击 HTTP首部注入攻击 邮件首部注入攻击 文件目录遍历攻击 利用设置或设计缺陷 强制游览 开放重定向 不正确的错误 ...

  5. 【Android休眠】之Android休眠机制

    一.休眠概述 休眠,简而言之就是设备在不需要工作的时候把一些部件.外设关掉(掉电或让它进入低功耗模式). 为什么要休眠呢?一言以蔽之:省电. 休眠分主动休眠和被动休眠.主动休眠:比如我电脑不用了,就通 ...

  6. 使用nginx代理gogs遇到推送代码错误的问题(RPC failed; HTTP 413 curl 22 The requested URL returned error: 413)

    前提 代码管理我是用Gogs.Git,前些阵子使用Nginx将git.balabiu.com反向代理到了Gogs的默认端口,其他二级域名准备做其他使用, 导致上报代码出现了错误. 问题 推送代码报错误 ...

  7. java网页日期选择框对应的星期有误

    · 我用java写了个星期查询代码,有的日期对有的日期错,求帮忙看看哪里有问题!! import java.util.*;public class Test1 {public static void ...

  8. 给静态网站的链接添加nofollow属性

    给网站的链接添加nofollow属性对SEO非常有效,如果是动态网站,实现的方法比较多,但是对于静态网站来说只能借助CSS或者JS来实现,单纯的CSS实现需要覆盖所有的链接出现位置:JS与CSS结合则 ...

  9. H5_0018:z-index失效的原因

    在做的过程中,发现了一个很简单却又很多人应该碰到的问题,设置Z-INDEX属性无效. 在CSS中,只能通过代码改变层级,这个属性就是z-index, 要让z-index起作用有个小小前提,就是元素的p ...

  10. java学习笔记之反射—反射和工厂模式

    简单工厂模式又称为静态工厂方法模式,它是由工厂对象来决定要创建哪一种类的实例化对象. 静态工厂代码: class Factory{ private Factory() {} public static ...