各类数组的意义和用法

数组的概念

 1.数组是一组有序数据的集合。数组中各数据的排列是有一定规律的,下标代表数据在数组中的序号。

2.数组中的每一个元素都属于同一个数据类型。不能把不同类型的数据放在同一组数据中。

3.用一个数组名和下标来唯一确定数组中的元素。

一维数组

 1.一维数组的定义格式为:

类型说明符   数组名  [常量表达式】;

2类型说明符:数组的类型

数组命名规则和变量名相同,遵守标识符命名规则。

常量表达式可以包括常量和符号常量,但不能包含变量。

常量表达式指明数组中元素的个数,必须大于0.

数组名后是用方括号而不是圆括号。

3.实型数组: float score[数字]

字符数组:char str[数字]

其中score  str 为数组名

方括号内的数值为数组长度

下标个数为数组维数

数组成员称为数组元素

4.在数组定义时为数组元素赋初值称为数组初始化。

1)在定义数组时对数组元素赋以初值。

方法:将数组元素的初值依次放在一对花括号内。

2)可以只给一部分元素赋值,其他按零来处理。

5.对全部数组元素赋初值时,可以不指定数组长度。

6.一维数组赋初值的个数不能超过数组总元素的个数。

7.c语言规定,只能引用单个数组元素,不能一次引用整个数组

数组元素的引用形式:   数组名[下标]

说明:1)下标是指在数组中第几个元素

           2)下标可以是整型变量,整型常量和整型表达式。

           3)下标的值是数组元素的序号

           4)注意区分数组定义和数组元素引用

一维数组程序的举例

1.用数组来求斐波那切数列 

#include<stdio.h>
void 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[1]);
    }
    printf("\n");
}
    

2.由小到大排列数的大小

#define N  10
void main()
{   int a[N],i,j,t;
    printf("input%D numbers:\n",N);
    for(i=0;i<N;i++)
       scanf("%d",&a[i]);
    printf("\n");
    for(j=0;j<N-1;i++)
       for(i=0;i<N-1;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=0;i<N;i++)
       printf("%d",a[i]);
    printf("\n");
}

二维数组

1.定义二维数组的一般形式为

     类型说明符   数组名[常量表达式1]   [常量表达式2];

其中:表达式1为行数;表达式2为列数

注意:一对方括号内不能写两个下标。

数组元素个数必须是常量表达式,不能使用变量。

2.二维数组的初始化

(1)分行给二维数组赋初值。(最直观)

(2)可以将所有数据写在一个花括号内,按数组元素在内存中的排列顺序对各元素赋初值。 

(3)可以对部分元素赋初值

(4)如果对全部元素都赋初值,则定义数组时对第一堆的长度可以不指定,但第二维的长度不能省,在定义时也可以只对部分元素赋初值而省略第一维的长度,但应该分行赋初值。

3.二维数组的输入输出

采用双重循环方式进行 :

数组的输入

#include<stdio.h>
int main()
{   int a[2][3],i,j;
    for(i=0;i<=2;i++)
     for(j=0;j<=3;j++)
       scanf("%d",&a[i][j]);
     return 0;
}

数组的输出

#include<stdio.h>
int main()
{  int a[2][3],i,j;
    for(i=0;i<=2;i++)
    for(j=0;j<=3;j++)
    scanf("%d",&a[i][j]);
    return 0;
}

字符数组

1.字符数组的定义:

用来存放字符数据的数组是字符数组 。c语言用字符数组存放字符串,字符数组中的个元素依次存放字符串的各字符。

2.定义的格式:         char数组名[常量表达式];

注意:c数组可以存放的字符串小于或等于c数组的元素。

3.字符串的存储

由于字符串的末尾有结束标志\0,所以字符串实际占有单元的数量等于字符串长度+1。定义时注意考虑元素总个数应比实际长度多1。

4.字符串的初始化

(1)用单个字符对字符数组进行初始化

说明:1)如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。

           2)如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误。

           3)如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组的长度,系统会自动根据初值的个数确定数组的长度。

           4)如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即\0).

 (2)用字符串常量对字符数组初始化

说明:1)将字符串存储到字符数组中,字符串和第一个\0构成有效字符串。对字符串的操作,就是对字符数组的操作。

2)普通数组中的元素是确定的,一般用下标控制循环;而字符串使用结束符\0来控制循环。

5.字符数组的输入输出

(1)单个字符输入输出(用格式符%c或字符输入函数)

#include<stdio.h>
int main()
{
    char c[5];
    int i;
    for(i=0;i<5;i++)
        scanf("%c",c[i]);
    for(i=0;i<5;i++)
        printf("%c",c[i]);
    printf("\n");
return 0;
}

2.字符串整体或部分输入输出(用格式符%s)

说明:(1)输入输出项必须是以字符串的地址形式出现;

           (2)也可以是字符串常量

           (3)只能输入不包括空格,\t,\n的字符串;

           (4)若要输入空格,用gets函数;

           (5)数组名前不加&符号。

c函数库中提供一些用来处理字符串的函数

1.puts    输出字符串

一般形式:puts(字符数组)

其作用是将一个字符串(以\0结束的字符序列)输出到终端并执行换行

2.gets    输入字符串

(以上两点使用时注意程序前边加#include<stdio.h>)

3.strcat  字符串连接

4·strcpy  字符串复制

5.strcmp  字符串比较

6·strlen   字符串长度

7·strlwr    其作用是将字符串中大写字母换成小写字母 

8·strupr    其作用是将字符串中小写字母换成大写字母

(以上使用时注意程序前边加:#include<string.h>)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值