数组总结

一维数组

类型名 数组名[数组长度];

  • 其中的类型名指定数组中每个元素的类型。(类型名不指定数组变量的类型。)
  • 其中的数组长度是一个整型常量表达式。(意思是int类型的。)
  • 数组名后是用方括号括起来的常量表达式,不能用圆括号。
  • 同一个数组中的每个元素都具有相同的数据类型。
  • 在引用数组元素时,下标的合理取值范围是[0,数组长度-1]。(但下标可以越界。)
  • 一维数组赋值可以通过   类型名 数组名[数组长度] = {初值表};
     int shuzu[10] = {0,1,2,3,4,5,6,7,8,9};

     

  • 一维数组赋值还可以通过在for循环中加入scanf函数实现 
int n=10;
int shuzu[];
for
(int i=0;i<n;i++) {scanf("%d",&a[i]);}

 


二维数组(矩阵)

类型名 数组名[行长度][列长度];

  • 其中的行长度和列长度也都是整型常量表达式
  • 行下标的合理取值范围是[0,行长度-1],列下标的合理取值范围是[0,列长度-1]。
  • 其他的跟一维数组差不多。
  • 二维数组的赋值可以通过  类型名 数组名[行长度][列长度] ={初值表};
    int doubleshuzu [3][4]={{1,2,3,4},{5,6,7},{0,0,0,8}};
    \\第二行中未被赋值到的为0
  • 二维数组的赋值还可以通过双重嵌套for循环赋值。
    int a[n][m];
    for (int i=0; i<n;i++)
    {
        for (int j=0; j<m ;j++)
            scanf("%d ",a[i][j]);
    }

字符串数组

char 数组名[字符长度];

  • 跟一维数组差不多,只不过类型是char,所以很多特性都与一维数组相同。
  • 输入字符可以通过gets()函数
    char s[10];
    gets(s); //需要头文件#include <string.h>
  • 也可以通过strcpy(数组名,"字符串");来输入字符串
    char s[100];
    strpcy(s,"Hello World");//需要头文件#include <string.h>
  • 可以通过strlen()函数,来获得字符数组中的字符数
    int n=strlen(s);

    其中的字符数可以用来做for循环的条件(十分好用)

  • 可以通过strcmp(数组1,数组2)函数,来比较两组字符数组
char s[100],ss[100]
 strcpy(s, "abcdef");
   strcpy(ss, "ABCDEF");
ret = strcmp(s,ss)

比较时,两个字符串自左向右逐个字符相比(按 ASCII 值大小相比较),直到出现不同的字符或遇 \0 为止

若s>ss,则输出值大于0    ;   若s=ss,则输出值等于0  ; 若s<ss,则输出值小于0(具体多少不知道)

 

(之前那个acm校选有一道判断复读的题好像就可以用这个。)


 

 

 这几周对数组的学习就在这里了,相比其他人也许只能算一点点吧,我还是太菜了,争取卷过别人吧

 

 

最后恭喜EDG夺冠!EDG牛逼!

 

 

posted @ 2021-11-07 22:56  阿伟今天不想死  阅读(440)  评论(0)    收藏  举报