C语言数组学完学啥,我的c语言学习-数组专题
學(xué)到最后的數(shù)組專題了。數(shù)組數(shù)組,怎么著也要是一組數(shù)吧,對(duì),數(shù)組是按順序排列的一組同類型的數(shù)據(jù)構(gòu)成的集合,用來(lái)保存大量同類型的相關(guān)數(shù)據(jù)。
一? ? ?一維數(shù)組
定義一個(gè)一維數(shù)組int a[5],表示有五個(gè)元素,a[0]、a[1]、a[2]、a[3]、a[5]。c語(yǔ)言中數(shù)組的下標(biāo)是從0開始的,直接對(duì)a的訪問(wèn),就是訪問(wèn)此數(shù)組的首地址,數(shù)組名稱就是首地址。數(shù)組大小必須是值為正的常量,不能為變量,如? int n;cin>>n;int a[n]這種情況是錯(cuò)誤的。
下面寫一個(gè)例子,從例子中理解數(shù)組的用法。
將數(shù)組中第一個(gè)元素移到數(shù)組末尾,其余數(shù)據(jù)依次向前平移一個(gè)位置。
#include
#include
const int n=10;
using namespace std;
int a[n],temp;
int main()
{
for(int i=0;i
{
cin>>a[i];
}
temp=a[0];
for(int i=0;i
{
a[i]=a[i+1];
}
a[n-1]=temp;
for(int i=0;i
{
cout<
}
return 0;
}
在這里,我學(xué)到了三種排序方式,選擇排序、冒泡排序和插入排序。下面詳細(xì)介紹一下。
選擇排序:
基本步驟:(1)從數(shù)組存放的n個(gè)數(shù)中找出最小數(shù)的下標(biāo),然后將最小數(shù)與第1個(gè)數(shù)交換位置,此過(guò)程進(jìn)行n-1次;
(2)除第一個(gè)數(shù)以外,再?gòu)钠溆鄋-1個(gè)數(shù)中找出最小數(shù)(即n個(gè)數(shù)中的次小數(shù))的下標(biāo),將此數(shù)與第2個(gè)數(shù)交換位置,此過(guò)程進(jìn)行n-2次
(3)重復(fù)n-1次過(guò)程,即完成所求。
代碼實(shí)現(xiàn)(設(shè)為升序):
int main()
{
int a[10000];
int i,j,l;
cin>>n;
for(i=0;i
{
cin>>a[i];
}
for(j=0;j
{
l=j;
for(i=1;i
if(a[l]
l=l;
if(l!=j)
i=a[l],a[l]=a[j],a[j]=i;
}
return 0;
}
用l=0,i=1時(shí)為例,若a0a[1]時(shí),兩個(gè)元素交換位置,然后a0位置放最小元素。再拿a1,a2,an-1依次進(jìn)行上述操作。
冒泡排序(設(shè)為升序):
相鄰元素兩兩比較,大的往后放,如果第一個(gè)元素比第二個(gè)大,就交換它們兩個(gè)。對(duì)每一對(duì)相鄰元素做同樣的工作,最終最后的元素會(huì)是最大的數(shù),這是一輪。依照上面的過(guò)程在進(jìn)行,n個(gè)元素就進(jìn)行n-1輪,每拍完一輪。比較次數(shù)就少一次。
代碼實(shí)現(xiàn):
#include
#include
using namespace std;
const int n=10;
int main()
{
for(int i=1;i<=n;++i)
{
cin>>a[i];
}
for(int j=1;j<=n-1;++j)
{
for(int i=1;i
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(int i=1;i<=n;++i)
{
cout<
cout<
}
return 0;
}
插入排序:在有序排序中插入一整數(shù),使新序列仍有序。這個(gè)我還不是太明白,需要仔細(xì)研究一下。
代碼實(shí)現(xiàn):l=num-1;
while(l>=0&&a[l]
{
a[l+1]=a[l];
l--;
}
a[l+1]=x;
二? 二維數(shù)組
二維數(shù)組用兩個(gè)下標(biāo)確定各元素在數(shù)組中的順序,可用排列成i行j列的元素表示,一般格式定義為:類型? ?數(shù)組名[第一維長(zhǎng)度][第二維長(zhǎng)度]。
例如:int? ?a[4][10]
a數(shù)組實(shí)質(zhì)上是一個(gè)有l(wèi)行、10列的表格,表格中可儲(chǔ)存40個(gè)元素。第m行第n列對(duì)應(yīng)的是a[m-1]a[n-1];其余的用法我覺得與一維數(shù)組差不多。
三? ??字符數(shù)組與字符串類型
格式 :char 數(shù)組名[常量表達(dá)式1]……
用單引號(hào)引起字符常量,一個(gè)字符;用雙引號(hào)引起字符串常量,多個(gè)字符;
字符串的輸入:scanf("%s",字符數(shù)組名)不加&
這個(gè)地方用scanf和printf要簡(jiǎn)便
字符串末尾有\(zhòng)n
使用gets語(yǔ)句只能輸入一個(gè)字符串,讀入一整行,包括空格。例如,scanf("%s",s1)和gets(s2)同樣輸入Let us go,s1獲得的結(jié)果是Let,s2獲得的結(jié)果是Let us go.
快要期末考試了,給自己打個(gè)氣,好好準(zhǔn)備!
總結(jié)
以上是生活随笔為你收集整理的C语言数组学完学啥,我的c语言学习-数组专题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JAVA性能分析工具--Jvisualv
- 下一篇: 开源路由软件zebra的命令存储原理及使