精华内容
下载资源
问答
  • C++一维数组定义一维数组定义一维数组的一般格式为:类型标识符 数组名[常量表达式];例如:int a[10];它表示数组名为a,此数组为整型,有10个元素。关于一维数组的几点说明:1) 数组名定名规则和变量名相同,遵循...

    C++一维数组

    定义一维数组

    定义一维数组的一般格式为:

    类型标识符  数组名[常量表达式];

    例如:

    int a[10];

    它表示数组名为a,此数组为整型,有10个元素。

    关于一维数组的几点说明:

    1) 数组名定名规则和变量名相同,遵循标识符定名规则。

    2) 用方括号括起来的常量表达式表示下标值,如下面的写法是合法的:

    int a[10];

    int a[2*5];

    int a[n*2]; //假设前面已定义了n为常变量

    3) 常量表达式的值表示元素的个数,即数组长度。例如,在“int a[10];”中,10表示a数组有10个元素,下标从0开始,这10个元素是: a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7], a[8],a[9]。注意最后一个元素是a[9]而不是a[10]。

    4) 常量表达式中可以包括常量、常变量和符号常量,但不能包含变量。也就是说,C++不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的:

    int n;

    cin>>n; //输入a数组的长度

    int a[n]; //企图根据n的值决定数组的长度

    如果把第1,2行改为下面一行就合法了:

    const int n=5;

    引用一维数组的元素

    数组必须先定义,然后使用。只能逐个引用数组元素的值而不能一次引用整个数组中的全部元素的值。

    数组元素的表示形式为:

    数组名[下标]

    下标可以是整型常量或整型表达式。例如:

    a[0]= a[5]+ a[7]- a[2*3]

    【例】数组元素的引用。

    #include

    using namespace std;

    int main( )

    {

    int i, a[10];

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

    a[i]=i;

    for (i=9;i>=0;i--)

    cout<

    cout<

    return 0;

    }

    运行结果如下:

    9 8 7 6 5 4 3 2 1 0

    程序使a[0]~a[9]的值为0~9,然后按逆序输出。

    一维数组的初始化

    1) 在定义数组时分别对数组元素赋予初值。例如:

    int a[10]={0,1,2,3,4,5,6,7,8,9};

    2) 可以只给一部分元素赋值。例如:

    int a[10]={0,1,2,3,4};

    3) 如果想使一个数组中全部元素值为1,可以写成:

    int a[10]={1,1,1,1,1,1,1,1,1,1};

    不能写成

    int a[10]={1*10};

    不能给数组整体赋初值。

    4) 在对全部数组元素赋初值时,可以不指定数组长度。例如:

    int a[5]={1,2,3,4,5};

    可以写成

    int a[]={1,2,3,4,5};

    一维数组程序举例

    【例】用数组来处理求Fibonacci数列问题。

    可以用20个元素代表数列中的20个数,从第3个数开始,可以直接用表达式f[i]=f[i-2]+f[i-1]求出各数。程序如下:

    #include

    #include

    using namespace std;

    int main( )

    {

    int i;

    int f[20]={1,1}; //f[0]=1,f[1]=1

    for(i=2;i<20;i++)

    f[i]=f[i-2]+f[i-1]; //在i的值为2时,f[2]=f[0]+f[1],依此类推

    for(i=0;i<20;i++) //此循环的作用是输出20个数

    {

    if(i%5==0) cout<

    cout<

    }

    cout<

    return 0;

    }

    运行结果如下:

    【例】编写程序,用起泡法对10个数排序(按由小到大顺序)。

    起泡法的思路是:将相邻两个数比较,将小的调到前头。见图5.2。然后进行第2趟比较,对余下的前面5个数按上法进行比较,见图。

    ba0b6f72ba06cba25a72cadc1c45da1c.png

    886092f40d1e10504d35ead6c48c7278.png

    可以推知,如果有n个数,则要进行n-1趟比较(和交换)。在第1趟中要进行n-1次两两比较,在第j趟中要进行n-j次两两比较。

    根据以上思路写出程序,今设n=10,本例定义数组长度为11,a[0]不用,只用a[1]~a[10],以符合人们的习惯。从前面的叙述可知,应该进行9趟比较和交换。

    #include

    using namespace std;

    int main( )

    {

    int a[11];

    int i, j, t;

    cout<

    for (i=1;i<11;i++) //输入a[1]~a[10]

    cin>>a[i];

    cout<

    for (j=1;j<=9;j++) //共进行9趟比较

    for(i=1;i<=10-j;i++)//在每趟中要进行(10-j)次两两比较

    if (a[i]>a[i+1]) //如果前面的数大于后面的数

    {

    t=a[i];a[i]=a[i+1];a[i+1]=t;

    }//交换两个数的位置, 使小数上浮

    cout<

    for(i=1;i<11;i++) //输出10个数

    cout<

    展开全文
  • 一维数组和二维数组的区别是:一维数组中每个元素都只带有一个下标,其本质上是一组相同类型数据的线性集合,而二维数组中每个元素都可以作为一个数组,本质就是以数组作为数组元素的数组。一维数组和二维数组的区别...

    一维数组和二维数组的区别是:一维数组中每个元素都只带有一个下标,其本质上是一组相同类型数据的线性集合,而二维数组中每个元素都可以作为一个数组,本质就是以数组作为数组元素的数组。

    2eee82b3639cac24dcb42a2b2731adfc.png

    一维数组和二维数组的区别

    一维数组中每个元素都只带有一个下标,其本质上是一组相同类型数据的线性集合,而二维数组中每个元素都可以作为一个数组,本质就是以数组作为数组元素的数组。

    一维数组:

    一维数组在程序中可以使用下标变量,即说明这些变量的整体为数组,数组中的每个变量的数据类型是相同的。

    当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。

    一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。二维及多维数组可以看作是一维数组的多次叠加产生的。

    数组是计算机编程中的重要概念,运用数组可以方便地处理大规模的数据。

    二维数组:

    二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。

    二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。

    更多相关知识,请访问 PHP中文网!!

    展开全文
  • C语言总结第七章、数组一维数组一维数组的定义一维数组的引用一维数组的初始化程序举例二维数组及多维数组二维数组的定义二维数组元素的引用二维数组元素的初始化程序举例字符数组和字符串字符数组 第七章、数组 ...

    第七章、数组

    数组是构造数据类型之一

    • 数组: 有序数据的集合,用数组名标识
    • 元素: 属同一数据类型,用数组名和下标确定

    一维数组

    一维数组的定义

    定义方式:
    在这里插入图片描述
    例: int a[6]
    在这里插入图片描述

    一维数组的引用

    1、数组必须先定义,后使用。
    2、只能逐个引用数组元素,不能一次引用整个数组。
    3、数组元素表示形式: 数组名[下标] ,下标可以是常量或整型表达式

    一维数组的初始化

    初始化方式:
    在这里插入图片描述

    说明:
    1、数组不初始化,其元素值为随机数。
    2、对static数组元素不赋初值,系统会自动赋以0值。
    在这里插入图片描述
    3、只给部分数组元素赋初值。
    在这里插入图片描述
    4、当全部数组元素赋初值时,可不指定数组长度。
    在这里插入图片描述

    程序举例

    例1: 读10个整数存入数组,找出其中最大值和最小值
    在这里插入图片描述

    /*示例1*/
    #include <stdio.h>
    #define SIZE 10
    main()
    {   int x[SIZE],i,max,min;
        printf("Enter 10 integers:\n");
        for(i=0;i<SIZE;i++)
        {   printf("%d:",i+1);
    	scanf("%d",&x[i]);
        }
        max=min=x[0];
        for(i=1;i<SIZE;i++)
        {  if(max<x[i])  max=x[i];
           if(min>x[i])  min=x[i];
        }
        printf("Maximum value is %d\n",max);
        printf("Minimum value is %d\n",min);
    }
    

    例2: 用数组求Fibonacci数列前20个数
    在这里插入图片描述

    /*示例2*/
    #include <stdio.h>
    main()
    {   int i;
         int f[20]={1,1};
        for(i=2;i<20;i++)
           f[i]=f[i-2]+f[i-1];
        for(i=0;i<20;i++)
        {   if(i%5==0)  printf("\n");
             printf("%12d",f[i]);
        }
    }
    

    例3: 用冒泡法对10个数排序
    在这里插入图片描述
    在这里插入图片描述

    /*示例3*/
    #include <stdio.h>
    main()
    {   int a[11],i,j,t;
        printf("Input 10 numbers:\n");
        for(i=1;i<11;i++)
           scanf("%d",&a[i]);
        printf("\n");
        for(j=1;j<=9;j++)
           for(i=1;i<=10-j;i++)
              if(a[i]>a[i+1])
             {t=a[i]; a[i]=a[i+1]; a[i+1]=t;}
        printf("The sorted numbers:\n");
        for(i=1;i<11;i++)
    	printf("%d ",a[i]);
    }
    

    例4: 用简单选择法对10个数排序

    在这里插入图片描述

    在这里插入图片描述

     /*示例4*/
    #include <stdio.h>  
    main()
    {   int a[11],i,j,k,x;
        printf("Input 10 numbers:\n");
        for(i=1;i<11;i++)
           scanf("%d",&a[i]);
        printf("\n");
       for(i=1;i<10;i++)
       {  k=i;
          for(j=i+1;j<=10;j++)
                if(a[j]<a[k])  k=j;
          if(i!=k)
          {  x=a[i]; a[i]=a[k]; a[k]=x;}
       }
        printf("The sorted numbers:\n");
        for(i=1;i<11;i++)
    	printf("%d ",a[i]);
    }
    

    二维数组及多维数组

    二维数组的定义

    定义方式: 
    在这里插入图片描述
    在这里插入图片描述
    数组元素的存放顺序
    1、原因: 内存是一维的
    2、二维数组: 按行序优先
    3、多维数组: 最右下标变化最快

    在这里插入图片描述
    数组a[m][n],m行n列,共m*n个元素
    在这里插入图片描述

    这些元素占用m*n个单元,每个单元的大小取决于
    元素的类型。

    任意元素a[i][j]在数组中的位置计算公式为:

    i×n+j (从0开始)

    a——数组的起始地址;a[0]——0行0列元素的地址。

    二维数组元素的引用

    形式: 数组名[下标][下标]

    二维数组元素的初始化

    1、分行初始化
    2、按元素排列顺序初始化

    程序举例

    例1:将二维数组行列元素互换,存到另一个数组中
    在这里插入图片描述

    /*示例1*/
    #include <stdio.h>
    main()
    {   int a[2][3]={{1,2,3},{4,5,6}};
         int b[3][2],i,j;
        printf("array a:\n");
        for(i=0;i<=1;i++)
        {   for(j=0;j<=2;j++)
    	{   printf("%5d",a[i][j]);
    	    b[j][i]=a[i][j];
    	}
    	printf("\n");
        }    
        printf("array b:\n");
        for(i=0;i<=2;i++)
        {   for(j=0;j<=1;j++)
    	   printf("%5d",b[i][j]);
             printf("\n");
        }
    }
    

    例2:求二维数组中最大元素值及其行列号
    在这里插入图片描述

    /*示例2*/
    #include <stdio.h>
    main()
    {  int a[3][4]={{1,2,3,4},
                            {9,8,7,6},
                            {-10,10,-5,2}};
        int i,j,row=0,colum=0,max;
        max=a[0][0];
        for(i=0;i<=2;i++)
           for(j=0;j<=3;j++)
               if(a[i][j]>max)
    	  {  max=a[i][j];
    	     row=i;
    	     colum=j;
    	  }
        printf("max=%d,row=%d,\colum=%d\n",max,row,colum);
    }
    

    例3:分别求n阶方阵两条对角线上的元素之和

    /*示例3*/
    #define N 3
    main()
    {   int i,j,a[N][N];
    int sum1=0,sum2=0;
    for(i=0;i<N;i++)
      for(j=0;j<N;j++)
        scanf(%d”,&a[i][j]);
    for(i=0;i<N;i++)
      for(j=0;j<N;j++)
        if(i==j) sum1+=a[i][j];
    for(i=0;i<N;i++)
      for(j=N-1;j>=0;j--)
        if((i+j)==N-1) sum2+=a[i][j];
    printf(“sum1=%d,sum2=%d\n”,sum1,sum2);
    }
    

    字符数组和字符串

    字符数组

    定义 : 每个元素存一个字符,主要用来对字符串操作。
    字符数组的初始化:

    1、逐个字符赋值
    2、用字符串常量

    字符数组的引用:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    字符串

    字符串及其结束标志

    (1)、无字符串变量,用字符数组处理字符串。
    (2)、字符串结束标志:‘\0’。

    在这里插入图片描述
    字符串的输入输出
    输入:

    • 用scanf函数
      (1).输入单个字符:%c 需用循环语句
      (2).输入字符串:%s scanf(“%s”,str);
    • 用gets函数:gets(str);

    输出:

    • 用printf函数
      (1).输出单个字符:%c 需用循环语句
      (2).输出字符串:%s printf(“%s”,str);
    • 用puts函数:puts(str);

    在这里插入图片描述

    常用的字符串处理函数: 加粗样式包含在头文件 string.h

    字符串输出函数puts

    格式: puts(字符数组)
    功能: 向显示器输出字符串(输出完,换行)
    说明: 字符数组必须以‘\0’结束

    字符串输入函数gets

    格式: gets(字符数组)
    功能: 从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’
    说明: 输入串长度应小于字符数组维数

    字符串连接函数strcat

    格式: strcat(字符数组1,字符数组2)
    功能: 把字符数组2连到字符数组1后面
    返值: 返回字符数组1的首地址
    说明:
    1、字符数组1必须足够大
    2、连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消, 新串最后加‘\0’

    字符串拷贝函数strcpy

    格式: strcpy(字符数组1,字符串2)
    功能: 将字符串2,拷贝到字符数组1中去
    返值: 返回字符数组1的首地址
    说明:
    1、字符数组1必须足够大
    2、拷贝时‘\0’一同拷贝
    3、不能使用赋值语句为一个字符数组赋值
    在这里插入图片描述

    字符串比较函数strcmp

    格式: strcmp(字符串1,字符串2)
    功能: 比较两个字符串
    比较规则: 对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘\0’为止
    返值: 返回int型整数,
    a. 若字符串1< 字符串2, 返回负整数
    b. 若字符串1> 字符串2, 返回正整数
    c. 若字符串1== 字符串2, 返回零
    说明: 字符串比较不能用“==”,必须用strcmp

    字符串比较函数strcmp

    字符串长度函数strlen
    格式:strlen(字符数组)
    功能:计算字符串长度
    返值:返回字符串实际长度,不包括‘\0’在内
    在这里插入图片描述

    展开全文
  • C++一维数组 定义一维数组 定义一维数组的一般格式为:  类型标识符 数组名[常量表达式]; 例如: int a[10]; 它表示数组名为a,此数组为整型,有10个元素。 关于一维数组的几点说明: 1) 数组名定名规则和变量...
  • 二维数组与一维数组

    2019-03-04 14:36:01
    1.二维数组与二维数组的初始化 定义: 二维数组本质为以数组作为数组元素的数组,即“数组的数组”。...首先我们先定义一个一维数组和一个二维数组。 int arr[3][4]={{1,2,34,4},{5,6,7,8},{0,11,9,...

    1.二维数组与二维数组的初始化

     定义:  二维数组本质为以数组作为数组元素的数组,即“数组的数组”。

     表达式: 类型说明符   数组名【常量表达式】【常量表达式】

      在二维数组中,二维数组行优先。

     2.二维数组与一维数组的比较

      首先我们先定义一个一维数组和一个二维数组。

        int   arr[3][4]={{1,2,34,4},{5,6,7,8},{0,11,9,10}};
        int   crr={1,2,3,4,4,6,7,8,9};

    该图片向我们展示了二维数组如何存储。其中一维数组的格子种有多余的空间,那么这个格子自动置零。

    接下来,我们来看一维数组与二维数组的区别:

    在上面代码中我们可以将二维数组看成由三个元素组成。由三个不同颜色的格子表示。

    Ps:对于一些比较复杂的定义,我们可以通过优先级判断他的属性。

     比如说:

    int  (*p)[4]    //(  )的优先级大于【】,因为p先于*结合,(*p)是指针。

    int    *p[4  ]    //*的优先级小于[ ],所以p[4]是一个数组。

      然后我们就可以考虑:如果是函数,则考虑函数的参数列表和返回值;如果是指针,则考虑指针指向的内容;如果是数组,则考虑数组的数据类型和长度。

    (1)int  (*x)[4]:指向数组的指针,简称数组指针。   

    (2)  int  *x[4]:保存指针的数组,简称指针数组。

    (3)  int  *f():返回值为指针的函数,简称指针函数。

    (4)   int   (*f)():指向函数的指针,简称函数指针。

    3.二维数组的打印

     

    展开全文
  • 一维数组的声明 一维数组声明赢指出一下三点: 存储在每个元素的值的类型,如,int,float,可以是复合类型 数组名 数组中的元素数,数组的元素数必须用值大于等于1的常量表达式定义; 注意: 数组定义中的类型不能...
  • C语言一维数组教案学 科:计算机科学与技术课 程:C语言程序设计课 题:一维数组课 时:2教学目标:1、掌握一维数组的定义和引用2、掌握一维数组的初始化方法3、了解与一维数组有关的应用编程方法教学重点:一维数组...
  • 1、一维数组的定义方式 一维数组的引用 一维数组的初始化 构造类型:把基本的数据类型{int,float,double,char}进行一些变换得到的数据类型。 数组就是构造类型。 //一维数组 定义方式: 类型说明 数组名字[常量...
  • C语言一维数组

    2019-11-23 20:43:54
    C语言一维数组1.1一维数组的定义和应用1.一维数组的定义2.一维数组的应用1.2一维数组的初始化 1.1一维数组的定义和应用 1.一维数组的定义 一维数组用以储存一位数列中数据的集合。其一般形式如下: 类型说明符 数组...
  • 一维数组与二维数组

    2020-02-02 13:07:11
    一维数组 定义 当数组中每个元素都只带有一个下标时,称这样的数组为一维数组 1.格式 类型标识符 数组名[常量表达式] 说明: ①数组名的命名规则与变量名的命名规则一致 ②常量表达式表示数组元素的个数。可以是常量...
  • C++一维数组的定义 C++中定义一维数组的一般格式: 类型标识符 数组名[常量表达式] 例如: int array[20]; 表示数组名为array,类型为整型数组,有20个元素,读者在定义数组时,需要注意以下4点: 数组名定名规则...
  • 一维数组的定义和一维数组的引用 内存中一串连续的存储单元(变量),叫数组。指针移动和比较只有在一串连续的数组中才有意义。 当数组中每个变量只带一个下标时,为一维数组。 定义一个一维数组: 类型名 数组...
  • 一维数组 一位数组是最简单的数组类型,它的定义形式如下: 类型说明符 数组名[常量表达式] 类型说明符是数组中每个元素的类型,常量表达式是数组元素的个数 在使用一维数组的时候需要留意以下两个要点 常量表达式...
  • 一维数组和二维数组的定义及用法

    万次阅读 2018-06-08 19:03:01
    一维数组的定义 类型说明符 数组名 [常量表达式]; 在此说明:常量表达式必须是常量和常量符号。常量表达式定义了数组的长度。在宏定义中#define定义一个符号常量,则这个符号常量可以用来声明数组的个数 #define...
  • C语言程序设计一维数组 C语焉不详内容提要1 一维数组的定义2 一维数组的初始化3 一维数组的引用怎样学好C语言?引例【案例】从键盘上输入某学科竞赛组6名成员的成绩(整数),求平均成绩、并找出最高分和最低分。分析...
  • 一维数组 定义方式:数据类型 数组名[常量表达式] 在内存中的存放:例如: int a[3] a→0 a[0] 数组名a表示内存首地址,是地址常量 1 a[1] 编译时分配连续内存,内存字节数=数组长度*sizeof(元素数据类型) 2 a[2] ...
  • C语言一维数组的定义和引用C语言一维数组的定义和引用在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。...
  • 二维数组与一维数组相似,但是用法上要比一维数组复杂一点。后面的编程中,二维数组用得很少,因为二维数组的本质就是一维数组,只不过形式上是二维的。能用二维数组解决的问题用一维数组也能解决。但是在某些情况下...
  • 一维数组

    2019-07-19 09:21:49
    下面主要聊一下一维数组、二维数组、字符数组的定义和类型说明符引用、以及字符串处理函数 1.1一维数组 一维数组是C语言中用来存储和处理一维序列数据的数据类型。数组中的所有元素均属于同一种类型。组合使用数组名...
  • 一维数组的定义及初始化 int a[10];//[]中的值只能是常量或常量表达式,不能是变量 //四种一维数组初始化 int b[5]={1,2,3,4,5}; int c[5]={1,2};//只为c[0],c[1]赋值,剩下的数组元素值默认为0 int d[5]={0};//数组...
  • PAGE / NUMPAGES C语言一维数组的定义 C语言支持一维数组和多维数组如果一个数组的所有元素都不是数组那么该数组称为一维数组 一维数组的定义方式 在C语言中使用数组必须先进行定义一维数组的定义方式为 类型说明符 ...
  • 一、一维数组的定义与初始化 1.一维数组的定义 一维数组也称向量,它用以组织具有一维顺序关系的一组同类型的数据。 一维数组的定义方式: 数据类型 数组名[常量表达式] 类型说明符表示数组中所有元素的类型;...
  • 【C语言】一维数组和二维数组

    千次阅读 2017-07-10 09:43:54
    一维数组及二维数组
  • 我们在一维数组开始之前会介绍到一些在学习表达式的时候要注意的点,由于基础的表达式只是比较简单,在这里基本的表达式和用法我们在这里不举例,后期在使用过程中很重要的点就是要注意其表达式的优先级和结合性。...
  • 一维数组和二维数组

    2018-05-01 01:51:29
    一维数组和二维数组 一维数组:在程序中可以使用下标变量,即说明这些变量的整体为数组,数组的每个变量的数据类型是相同的。 当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。 例:int arr[4]...
  • C语言数组——一维数组实例详解

    千次阅读 多人点赞 2020-01-05 20:25:46
    所谓数组,是指将那些具有相同类型的、数量有限的若干个变量通过有序的方法组织起来的一种便于使用的形式。数组属于一种构造类型,其中的变量被称为数组的元素。...在使用一维数组的时候需要留意以下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,627
精华内容 11,050
关键字:

一维数组常量表达式