C 語言支持?jǐn)?shù)組數(shù)據(jù)結(jié)構(gòu),它可以存儲(chǔ)一個(gè)固定大小的相同類型元素的順序集合。數(shù)組是用來存儲(chǔ)一系列數(shù)據(jù),但它往往被認(rèn)為是一系列相同類型的變量。
數(shù)組的聲明并不是聲明一個(gè)個(gè)單獨(dú)的變量,例如a,b,c這些,而是聲明一個(gè)數(shù)組變量,例如a[0],a[1],a[2]等。我們把“a[]”這樣的格式稱為數(shù)組。而其中的0,1,2我們稱之為數(shù)組的下標(biāo)。
| 第一個(gè)定義 | 第二個(gè)定義 | 第三個(gè)定義 |
|---|---|---|
| a[0] | a[1] | a[2] |
數(shù)組的定義形式通常為定義其的名字加長度。例如int a[5],表面這里有定義一個(gè)名字為a的數(shù)組,數(shù)組里面有5個(gè)元素。這里劃重點(diǎn)了哈。
數(shù)組的下標(biāo)都是從0開始的,不管你定義多大的數(shù)組多小的數(shù)組,它的第一位下標(biāo)都是a[0]。
講完數(shù)組的概念,我們來說明一下數(shù)組是怎能使用的。
#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]);
}
}
上面是一個(gè)簡單的數(shù)組的用法,這個(gè)代碼要表達(dá)的是我們把三個(gè)數(shù),依次輸入進(jìn)數(shù)組a[3];這里我們用循環(huán)的形式完成數(shù)組的輸入,我們把i的值從0開始算起,讓數(shù)組的下標(biāo)每次循環(huán)結(jié)束后增長1,并完成了輸入的操作。
然后在第二個(gè)循環(huán)中,我們定義一個(gè)新的值作為它的初始值,并把它的初始值定位1,然后我們第一次輸出將從a[1]開始輸出數(shù)組。
可以說,數(shù)組和循環(huán)是緊密結(jié)合的。
下面我們通過OJ一道簡單的數(shù)組類例題來實(shí)際應(yīng)用一下數(shù)組,體會(huì)一下數(shù)組的好處。
1114: 逆序
- 題目描述
輸入n(1<=n<=10)和n個(gè)整數(shù),逆序輸出這n個(gè)整數(shù)。 - 輸入
輸入n(1<=n<=10),然后輸入n個(gè)整數(shù)。 - 輸出
逆序輸出這n個(gè)整數(shù),每個(gè)整數(shù)占4列,右對(duì)齊。 - 參考代碼:
#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;
}
代碼解析:
我們根據(jù)題目的描述,由于輸入的個(gè)數(shù)最多只有10個(gè),所以我們這里定義一個(gè)10元素的數(shù)組a[10]即可,根據(jù)以往循環(huán)相同的寫法,我們定義一個(gè)值保存?zhèn)€數(shù),并把這個(gè)值應(yīng)用于下面的循環(huán)中。完成數(shù)組的輸入。
在第二個(gè)循環(huán)中,我們把i的值賦為整數(shù)個(gè)數(shù)-1。(因?yàn)閿?shù)組是從0開始的,所以它的數(shù)組最后一位應(yīng)該是個(gè)數(shù)減1)然后讓i每次循環(huán)減1,實(shí)現(xiàn)數(shù)組的逆序輸出。
不知道大家看完這篇文章是否能對(duì)數(shù)組有一定的掌握和理解了,希望都能對(duì)大家的學(xué)習(xí)有一定的幫助吧。最后和大家小小互動(dòng)一下,
判斷下列各題對(duì)數(shù)組進(jìn)行定義和初始化是否正確,若有錯(cuò),請(qǐng)說明原因并改正:
int a={1, 2, 6, 2};b={2, 3, 6, 2};int n; int a[n]={1, 2}int a[3]={1, 2.3};
如果有知道答案的朋友可以把你的答案打在留言區(qū)下面~