代码改变世界

作业九 总结

2016-11-21 23:15  zlt.Santorini'Ly  阅读(204)  评论(3编辑  收藏  举报

一、知识点

1.二维数组的定义

·类型说明符  数组名[常量表达式][常量表达式](例:float  a[3][4],b[5][10]; )

·说明:①可以把二维数组看作是一种特殊的一维数组。

    ②二维数组在内存中按行存放。

    ③多维数组定义方式与二维数组类似。

2.二维数组的引用

·引用形式为: 数组名[下标][下标](注:下标可以是整型表达式,但应在已定义的数组大小的范围内。)

3.二维数组的初始化

①分行给二维数组赋初值。

②可以将所有数据写在花括弧内,按数组排列的顺序对各元素赋初值。

③可以对部分元素赋初值,不赋的为0。

④如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

4.二维数组的输入与输出

·矩阵与二维数组

int   a[N][N];             N是正整数

a[i][j]:i、j的取值范围[0,N-1]

用二维数组a表示N*N方阵时,对应关系:

a[0][0]   a[0][1]  a[0][2]   主对角线  i==j
a[1][0]   a[1][1]  a[1][2]   上三角   i<=j
a[2][0]   a[2][1]  a[2][2]   下三角   i>=j
                                      付对角线 i+j==N-1

5.字符数组

·字符串的存储和运算可以用一维字符数组实现。

·一维字符数组的定义、引用、初始化与其他类型的一维数组一样。

·字符串常量用一对双引号括起来的字符序列。

·字符串的有效长度:有效字符的个数。

6.字符串与一维字符数组

·字符串:一个特殊的一维字符数组。

·把字符串放入一维字符数组(存储)。

·对字符串的操作 ===> 对字符数组的操作。

·字符串的存储-数组初始化:①字符串可以存放在一维字符数组中

              ②字符数组初始化:用字符串常量

              ③数组长度 >= 字符串的有效长度 + 1

·字符串的存储:①字符串遇 '\0' 结束

        ②第一个 '\0' 前面的所有字符和 '\0' 一起构成了字符串

        ③'\0' 之后的其他数组元素与该字符串无关

·对字符串的操作:①把字符串放入一维字符数组(存储)

         ②对字符串的操作 ===> 对字符数组的操作:

                ·普通字符数组:数组元素的个数是确定的,一般用下标控制循环。

           ·字符串:没有显式地给出有效字符的个数,只规定在字符串结束符 '\0' 之前的字符都是字符串的有效字符,一般用结束符 '\0' 来控制循环。

           ·循环条件:s[i] != '\0' 。

·字符串的存储-赋值和输入:

            将字符串存入数组,对字符串初始化还可以采用赋值和输入方法:①数组初始化②赋值或者输入'\0' 代表空操作,无法输入(输入时,设定一个输入结束            符,将输入结束符转换为字符串结束符 '\0')                                               

二、实验过程中遇到的问题及解决方法:

1.

#include<stdio.h>
int main()
{
    int i,j;
    int a[9][9];
    
    for(i=1;i<9;i++){
        for(j=1;j<9;j++){
            a[i][j]=i*j;
            printf("%d*%d=%d\n",i,j,a[i][j]);
        }
        printf("\n");
    }
    return 0;    
}

在定义数组长度的时候忘记“数组长度 >= 字符串的有效长度 + 1”这一原则,只是输出的程序不完整。(需要加深理解记忆,多加强练习,注重细节)

2.在编写字串符程序时,对其的储存和操作步骤不熟练,总爱漏写结束符'\0',致使程序不完整,无法正常运行。(首先进行再次学习、记忆,对不清楚的地方多看多记多练)

三、实验心得体会

最近学习的数组知识分为一维数组和二维数组,其实两个数组都是同一个运用的道理,虽然难度在不断地增加,但是只要上课认真跟着老师的思路学习,课后加强理解学习,也能基本掌握应用。

 

 

二维数组的初始化