欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【C语言】数组

程序员文章站 2024-03-15 12:40:47
...

数组的定义

类型 数组名[元素个数]
int a[6];——46字节
char b[24];——1
24字节
double c[3];——8*3字节

访问数组中的元素

数组名[下标]
a[0];//访问a数组中的第一个元素
b[1];//访问b数组中的第二个元素
c[5];//访问c数组中的第六个元素

【注】
int a[5];//创建一个具有五个元素的数组
a[0];//访问第一个元素的下标是0,不是1
a[5];//报错,因为第五个元素的下标是a[4]

循环跟数组的关系

实现一个执行10次的循环,我们通常这么写:
for(i=0;i<10;i++)
{···}
而不是这么写:
for(i=1;i<=10;i++)
{···}
——这是因为我们常常需要使用循环来访问数组:
int a[10];
for(i=0;i<10;i++)
{
a[i]=i;
}

实例:我们尝试用数组存放班里10位同学的数学成绩,并计算出平均数

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define NUM 10

int main()
{ 
 
    int s[NUM];
    int i,sum=0;
    for ( i = 0; i < 10; i++)
    {
        printf("请输入第%i位同学的成绩:",i+1);
        scanf("%d",&s[i]);
        sum+=s[i];
    }
    printf("成绩录入完毕,该次考试的平均分是:%.2f\n",(double)sum/NUM);

    
    
    system("pause");
    return 0;

}

【C语言】数组
【注】
宏定义#define 标识符 常量 //注意, 最后没有分号
在写代码时在宏定义后加了分号导致出错。

数组的初始化

在定义数组的同时赋值
1.
将数组中所有元素初始化为0,可以这么写:
int a[10]={0};//事实上这里只是将第一个元素赋值为0
2.
如果是赋予不同的值,那么用逗号分隔开即可:
int a[10]={1,2,3,4,5,6,7,8,9,0};
3.
还可以只给一部分元素赋值,未被赋值的元素自动初始化为0:
int a[10]={1,2,3,4,5,6};//表示前6个元素赋值,后边4个元素系统自动初始化为0
4.
还可以只给出各个元素的值,而不指定数组的长度(因为编译器会根据值 的个数自动判断数组的长度):
int a[ ]={1,2,3,4,5,6,7,8,9,0};
5.
C99新特性:指定初始化的元素。这样就可以只对数组中的某些指定元素进行初始化赋值,而未被赋值的元素自动初始化为0:
int a[10]={[3]=3,[5]=5,[8]=8};

数组的动态定义

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//#define NUM 10

int main()
{ 
    int n,i;
    printf("请输入字符的个数:");
    scanf("%d",&n);

    char a[n+1];
    printf("请开始输入字符:");
    getchar();//扔掉上一步多读取的一个回车
    for ( i = 0; i < n; i++)
    {
        scanf("%c",&a[i]);
    }
    a[n]='\0';//数组的最后一个空必须为\0
    printf("您输入的字符串是:%s\n",a);
    system("pause");
    return 0;

}