【C语言】数组
数组的定义
类型 数组名[元素个数]
int a[6];——46字节
char b[24];——124字节
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;
}
上一篇: CNN(卷积神经网络)
下一篇: 剑指offer:构建乘积数组