【C语言】数组

数组的定义

类型 数组名[元素个数]
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;

}

在这里插入图片描述
【注】
宏定义#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;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值