C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,例如a,b,c这些,而是声明一个数组变量,例如a[0],a[1],a[2]等。我们把“a[]”这样的格式称为数组。而其中的0,1,2我们称之为数组的下标。
第一个定义 | 第二个定义 | 第三个定义 |
---|---|---|
a[0] | a[1] | a[2] |
数组的定义形式通常为定义其的名字加长度。例如int a[5],表面这里有定义一个名字为a的数组,数组里面有5个元素。这里划重点了哈。
数组的下标都是从0开始的,不管你定义多大的数组多小的数组,它的第一位下标都是a[0]。
讲完数组的概念,我们来说明一下数组是怎能使用的。
#include<stdio.h>
int main()
{
int a[3];
for(int i=0;i<=2;i++){
scanf("%d",a[i]);
}
for(int j=1;j<=2;j++{
printf("%d ",a[j]);
}
}
上面是一个简单的数组的用法,这个代码要表达的是我们把三个数,依次输入进数组a[3];这里我们用循环的形式完成数组的输入,我们把i的值从0开始算起,让数组的下标每次循环结束后增长1,并完成了输入的操作。
然后在第二个循环中,我们定义一个新的值作为它的初始值,并把它的初始值定位1,然后我们第一次输出将从a[1]开始输出数组。
可以说,数组和循环是紧密结合的。
下面我们通过OJ一道简单的数组类例题来实际应用一下数组,体会一下数组的好处。
1114: 逆序
- 题目描述
输入n(1<=n<=10)和n个整数,逆序输出这n个整数。 - 输入
输入n(1<=n<=10),然后输入n个整数。 - 输出
逆序输出这n个整数,每个整数占4列,右对齐。 - 参考代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,t,s;
scanf("%d",&s);
int a[10];
for(i=0;i<s;i++){
scanf("%d",&a[i]) ;
}
for(i=(s-1);i>=0;i--)
printf("%4d",a[i]);
return 0;
}
代码解析:
-
我们根据题目的描述,由于输入的个数最多只有10个,所以我们这里定义一个10元素的数组a[10]即可,根据以往循环相同的写法,我们定义一个值保存个数,并把这个值应用于下面的循环中。完成数组的输入。
-
在第二个循环中,我们把i的值赋为整数个数-1。(因为数组是从0开始的,所以它的数组最后一位应该是个数减1)然后让i每次循环减1,实现数组的逆序输出。
不知道大家看完这篇文章是否能对数组有一定的掌握和理解了,希望都能对大家的学习有一定的帮助吧。最后和大家小小互动一下,
判断下列各题对数组进行定义和初始化是否正确,若有错,请说明原因并改正:
int a={1, 2, 6, 2};
b={2, 3, 6, 2};
int n; int a[n]={1, 2}
int a[3]={1, 2.3};
如果有知道答案的朋友可以把你的答案打在留言区下面~
网友评论