中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站開(kāi)發(fā)設(shè)計(jì)各部門職責(zé)寧德市疫情

網(wǎng)站開(kāi)發(fā)設(shè)計(jì)各部門職責(zé),寧德市疫情,電子郵件怎么注冊(cè),做現(xiàn)貨黃金網(wǎng)站一維數(shù)組 在內(nèi)存占用連續(xù)存儲(chǔ)單元的相同類型數(shù)據(jù)序列的存儲(chǔ)。 數(shù)組是靜態(tài)存儲(chǔ)器的塊;在編譯時(shí)確定大小后才能使用; 其聲明格式如下: 元素類型 數(shù)組名[常量];元素類型:數(shù)組中元素的數(shù)據(jù)類型; 常量&#…

一維數(shù)組

在內(nèi)存占用連續(xù)存儲(chǔ)單元的相同類型數(shù)據(jù)序列的存儲(chǔ)。

數(shù)組是靜態(tài)存儲(chǔ)器的塊;在編譯時(shí)確定大小后才能使用;

其聲明格式如下:

元素類型 數(shù)組名[常量];

元素類型:數(shù)組中元素的數(shù)據(jù)類型;
常量:數(shù)組的長(zhǎng)度,即數(shù)組中存放數(shù)據(jù)的最大個(gè)數(shù);可以是數(shù),也可以是自己的常量;
如:

const int MaxSize=100;int a[MaxSize];


數(shù)組定義后,編譯系統(tǒng)為其分配地址連續(xù)的一段內(nèi)存空間.

數(shù)組名即是所分配內(nèi)存的首地址,也稱為數(shù)組的首地址;

數(shù)組聲明時(shí)為其初始化賦值

格式為: 元素類型 數(shù)組名[常量]={初值 1,初值 2,...,初值 n};

初始化時(shí),元素的個(gè)數(shù)應(yīng)該小于等于數(shù)組的長(zhǎng)度;

例如:

int a[10]={1,2,3}; //定義數(shù)組長(zhǎng)度為 10,前 3 個(gè)元素初始化為 1,2,3,其它元素為 0;
int a[]={1,2,3}; //定義數(shù)組,長(zhǎng)度省略,則長(zhǎng)度等于初始化數(shù)據(jù)的實(shí)際個(gè)數(shù) 3。
int a[100]={0}; //數(shù)組中的值全部為0,只有{0}可以全部初始化;在做true與false時(shí)非常有用;

使用數(shù)組

數(shù)組元素通過(guò)下標(biāo)來(lái)訪問(wèn),每個(gè)元素均可視為一個(gè)變量來(lái)使用,

元素的訪問(wèn)方式為: 數(shù)組名[下標(biāo)];

下標(biāo)值的有效范圍是 0~數(shù)組長(zhǎng)度-1;如果越界了,編譯器是可以正常運(yùn)行的,但是會(huì)出錯(cuò);

除字符數(shù)組外,其它類型的數(shù)組不允許整體訪問(wèn),也就是數(shù)組的輸入輸出需要對(duì)各個(gè)元素進(jìn)行,也就是? ? 數(shù)組名[下標(biāo)]? ?這種方式使用;

訪問(wèn)數(shù)組元素的地址格式為:

&數(shù)組名[下標(biāo)]或數(shù)組名+下標(biāo)

數(shù)組的內(nèi)存形象展示

例如:

int a[10];

聲明了一個(gè)長(zhǎng)度為 10 的 int 型一維數(shù)組,

系統(tǒng)需要為 a 分配連續(xù)的 40B 的內(nèi)存空間,

元素的訪問(wèn)方式為 a[i],

地址訪問(wèn)方式為&a[i]或 a+i,i 值的有效范圍是 0~9。

數(shù)組在函數(shù)中的使用

數(shù)組做形參時(shí),可以不寫(xiě)下標(biāo),如a[] 表示a[]的地址(指針)

? ? ? ? 做實(shí)參時(shí),不寫(xiě)[] 只寫(xiě)名;如 a

但是類型不要忘了啊!!!

viod f(int a[])//因?yàn)槭堑刂穫鬟f,所以一般不要返回值;
{}
int main()
{int a[100];f(a);return 0;
}

數(shù)組的傳遞方式為地址傳遞,也就是說(shuō)在自定義函數(shù)進(jìn)行更改后,在主函數(shù)中也將其更改;因?yàn)榈刂穫鬟f,傳過(guò)去的是地址位置,而你在使用時(shí),只是改變了它的值;

數(shù)組中的一下典型例子:

數(shù)組的輸入賦值與輸出:

	int a[10], i;       //這兩變量實(shí)現(xiàn)了數(shù)組的輸入輸出;for (i = 0; i < 10; i++) //i<10:輸入十個(gè)數(shù) 這里10可以換成一個(gè)變量,可達(dá)到更多可能;cin >> a[i];for (i = 0; i < 10; i++)cout << a[i]<<" ";

輸入10個(gè)整數(shù),存入一堆數(shù)組中,求最大值及下標(biāo);

	int a[10], i,m=0;     //m用來(lái)確定最大值的下標(biāo)for (i = 0; i < 10; i++) cin >> a[i];for (i = 0; i < 10; i++)if(a[i]>a[m])   //這里的比大小:說(shuō)明了數(shù)組的使用與變量沒(méi)有什么不同;m=i;      //數(shù)組與下標(biāo)的運(yùn)用;cout<<a[m]<<" "<<m;

從鍵盤(pán)輸入n個(gè)整數(shù)(n<100),存放在一個(gè)一維數(shù)組中,以0結(jié)束;

int a[100],i=0;//a[]為存放的數(shù)組;i為循環(huán)的走下標(biāo)的一個(gè)工具變量;//i=0因?yàn)閿?shù)組的一個(gè)地址從開(kāi)始;
cin >> a[i];//先輸入一個(gè)數(shù)組;若一個(gè)數(shù)組是0就沒(méi)有存放的數(shù),進(jìn)不了循環(huán);
while (a[i]){   //用來(lái)判斷是否結(jié)束;i++;        //i++ 使數(shù)組下標(biāo)向下一位移動(dòng);cin >> a[i];}//再次存放,記住順序不要搞反了;

從鍵盤(pán)輸入n(n<100),再存放n個(gè)數(shù)在一維數(shù)組中;

int a[100],i,n;
cin >> n;
for (i = 0; i < n; i++){     //i<n:因?yàn)閕從0開(kāi)始,如是=n了就會(huì)多加一個(gè)數(shù)組;所有不能i<=ncin >> a[i];}

逆序輸出

將數(shù)組下標(biāo)從后往前走;

for (i = n - 1; i >= 0; i--)cout << a[i] << " ";

逆序存儲(chǔ)

需要兩數(shù)組,一個(gè)是正序,一個(gè)逆序;

for(int i=0;i<n;i++)//n為數(shù)組的長(zhǎng)度b[i]=a[n-1-i];    //a[n-1]才是a數(shù)組的最后一個(gè)值;

排序

將原數(shù)組從小到大排序;

普通版,有小的我就換;

//運(yùn)用了兩個(gè)下標(biāo),i下標(biāo)為選取的下標(biāo),j下標(biāo)為與i下標(biāo)比較的
for(i=0;i<n-1;i++)  //n-1因?yàn)榈趎項(xiàng)為最后一位不用再往后比了;for (j = i+1; j < n; j++)   //i+1從i后一個(gè)開(kāi)始比較;{if (a[j] < a[i])    //要小的{int t = a[i];    //三位轉(zhuǎn)換法a[i] = a[j];a[j] = t;}}

高效版,只換了最小的;

//m起到了高效的作用 
for(i=0;i<n-1;i++){m=i;for (j=i+1;j<n;j++)if (a[j]<a[m])  m=j; //只最從i往后的最小的數(shù);所以只換了i的循環(huán)只轉(zhuǎn)了一次;if (m!=i){t=a[i];a[i]=a[m];a[m]=t;}}

奇偶排序

將數(shù)組按奇數(shù)在前、偶數(shù)在后,同為奇數(shù)或偶數(shù)的按從小到大的順序排序;

在一個(gè)數(shù)組里有兩個(gè)要求的排序;

普通版:一個(gè)一個(gè)要求的做;

先選取從小到大的要求一直跟著當(dāng)條件,再先將奇放前,然后偶放后面;

//從a[]的第一個(gè)值往后一點(diǎn)一點(diǎn)的滿足條件;
//i為所選,為偶時(shí)就往后放,比比較的大時(shí)并且為奇時(shí)也往后放;
//前頭的我只要小的奇數(shù);所以偶數(shù)都要放后面;
for (i = 0; i < n; i++)//要是i走到了全是偶數(shù)時(shí),不用管,等i走完了在偶數(shù)的循環(huán)時(shí)再解決
{for (x = i + 1; x < n; x++){if ((a[i] >= a[x] && a[x] % 2 != 0) || a[i] % 2 == 0){t = a[x];a[x] = a[i];a[i] = t;}}
}for (i = n - 1; i >= 0; i--)//奇牌完,剩偶沒(méi)有排,偶都讓我放后面了,所以這回i從后開(kāi)始
{for (x = i - 1; x >= 0; x--){if (a[x] % 2 != 0)//當(dāng)比較下標(biāo)走到奇時(shí),就不用走了;{break;}if (a[x] >= a[i] && a[x] % 2 == 0){t = a[x];a[x] = a[i];a[i] = t;}}
}

簡(jiǎn)化版:

只需要將條件都列出就好,但是不方便理解;

for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if((s[i]%2<s[j]%2)||(s[i]%2==s[j]%2)&&(s[i]>s[j])) {t=a[i],a[i]=a[j],a[j]=t}
// &&的優(yōu)先級(jí)大于||  &&兩邊的式子不用加上();
// s[i]%2<s[j]%2 表示前標(biāo)為偶,后標(biāo)為奇,  將偶放前,奇放后;
// 偶數(shù)=0 奇數(shù)=1
//s[i]%2==s[j]%2 表示同為偶||同為奇
//s[i]>s[j]  相同時(shí),而且前標(biāo)大就換;    ||后邊的式子達(dá)到了從小到大;

數(shù)組篩選法?

在面對(duì)下標(biāo)的判斷,而數(shù)組沒(méi)有任何要求時(shí),將數(shù)組的值當(dāng)做判斷標(biāo)志;

不滿足就挖去,最后只要滿足的;

int a[100] = { 0 };//將數(shù)組初始化成0,成為了中間變量,要求只與下標(biāo)有關(guān);
f(a);              //進(jìn)行了一列的判斷;將不滿足的數(shù)組值變成非0數(shù);
for (i = 0; i < n; i++)if (a[i] == 0) cout << i << " ";

例如:輸入m、n(m,n<100),輸出[m,n]之間的素?cái)?shù)。

#include <iostream>
using namespace std;
int h(int n) //判斷i是否為素?cái)?shù)
{if (n == 2 || n == 3 || n == 5 || n == 7) return 0;if (n == 1 || n % 2 == 0 || n % 3 == 0 || n % 5 == 0 || n % 7 == 0) return 1;return 0;
}void f(int a[], int m, int n)  //不滿足條件的變成非0
{int i;for (i = m; i <= n; i++){if (h(i) == 1) a[i] = 1;}
}int main()              //0為滿足條件的
{int n, a[101] = {0}, i, m;cin >> m >> n;f(a, m, n);for (i = m; i <= n; i++)if (a[i] == 0) cout << i << " ";return 0;
}

數(shù)組插入

插入,相當(dāng)于排隊(duì),這時(shí)來(lái)了個(gè)老登來(lái)插排;

插排者要想插入隊(duì)伍當(dāng)中,必須先有人往后去,才能給老登留出位置;

位置怎么留呢?是被插的人先往后串一下就行了嗎?肯定不啊,那樣被插者的后一位的數(shù)據(jù)就被插者給覆蓋了;所以要想完成插隊(duì),必須先從最后一位開(kāi)始往后串一位,一次到被查的位置;

for(i=n-1;i>=x;i--)//x為被插的位置a[i+1]=a[i];
cin>>a[x];          //老登來(lái)也
n++;            //n為人數(shù) 因?yàn)閬?lái)了個(gè)老登所以要++;

刪除指定元素

刪掉當(dāng)指定元素相當(dāng)于一堆人正在排隊(duì),突然有個(gè)人走掉了,這樣現(xiàn)在這個(gè)隊(duì)伍,從走掉者的后面一位開(kāi)始往前串一個(gè)位置;

for(i=x+1;i<n;i++){a[i-1]=a[i];}n--;     

刪除所有指定元素

//x為所要?jiǎng)h除的指定元素;j=0;            //j最后呈現(xiàn)的數(shù)組,做到了一個(gè)數(shù)組干了兩個(gè)數(shù)組的活;for(i=0;i<n;i++){if(a[i]!=x)    //i一直在進(jìn)行循環(huán),而相同時(shí)j不動(dòng),這樣就將所刪的元素給越了過(guò)去;{a[j]=a[i];j++;  }}n=j;          //n為數(shù)組長(zhǎng)度,因?yàn)閯h除了一些元素,長(zhǎng)度發(fā)生了變化

二維數(shù)組

聲明格式為:

元素類型 數(shù)組名[常量1][常量2]

常量1 :數(shù)組的最大行數(shù),常量?2 :數(shù)組的最大列數(shù);

C++中,二維數(shù)組中各個(gè)元素按行優(yōu)先規(guī)則在內(nèi)存占用連續(xù)的一段存儲(chǔ)空間;

就是每行存完,再存下一行;

如:int a[3][4]? ? ?// [3][4]代表最大長(zhǎng)度,但是在使用時(shí),還是從[0][0]開(kāi)始從的,與一維數(shù)組類似;

二維數(shù)組初始化

如:2行3列二維數(shù)組的初始化

int a[2][3]={{1,2,3},{4,5,6}};
int a[ ][3]= {{1,2,3},{4,5,6}};
int a[ ][3]={1,2,3,4,5,6}; 

二維的使用

訪問(wèn)格式為:數(shù)組名[行下標(biāo)][列下標(biāo)]

二維數(shù)組例題:

二維輸入輸出

因?yàn)槭嵌S,所以一個(gè)i用來(lái)走下標(biāo)是不夠用,所有需要兩個(gè)工具變量,一個(gè)走行,一個(gè)走列;

int i,j,a[4][5];
for (i=0;i<4;i++)   //因?yàn)閏++為行優(yōu)先存儲(chǔ),所以一般地將代表行的變量放上面for (j=0;j<5;j++)cin>>a[i][j];
for (i=0;i<4;i++){for (j=0;j<5;j++)cout<<a[i][j]<<" ";cout<<endl;          //達(dá)到了行滿換行的效果}

二維中尋找特定值

二維需要兩個(gè)變量來(lái)存儲(chǔ)最大值;

如:最大值

maxi=0;   
maxj=0;for (i=0;i<4;i++)for (j=0;j<5;j++)if (a[i][j]>a[maxi][maxj]){maxi=i;maxj=j;}
cout<<a[maxi][maxj];

二維數(shù)組求和

1.矩陣各行、列求和:

因?yàn)槭歉?#xff0c;所以將一個(gè)二維數(shù)組的行列存放在兩個(gè)數(shù)組中一個(gè)代表行一個(gè)代表列;

求行用行的變量下標(biāo)走,求列用列的變量下標(biāo)走;

for(i=0;i<n;i++)        for(j=0;j<m;j++)b[i]+=a[i][j];
for(i=0;i<n;i++)for(j=0;j<m;j++)c[j]+=a[i][j];
for(i=0;i<n;i++)cout<<b[i]<<" ";cout<<endl;
for(j=0;j<m;j++)cout<<c[j]<<" ";

2.對(duì)角線元素之和:重復(fù)部分不相加 ,一個(gè)矩陣擁有兩條對(duì)角線,一撇一捺;

矩陣為正方形時(shí)

for(i=0;i<n;i++)m+=b[i][i]+b[i][n-1-i];
if(n%2==1)                 //需要處理情況;m-=b[n/2][n/2];  //n為int;//常規(guī)的兩個(gè)變量走;不需要考慮重復(fù)部分,因?yàn)閕f里用的是||
for(i=0;i<n;i++)for(j=0;j<n;j++)if(i==j||i=n-1-j)m+=a[i][j]; 

3.周邊求和;

//普通低效版
for(i=0;i<n;i++)for(j=0;;j<m;j++)if(i==0||j==0||i==n-1||j==m-1)s+=a[i][j]; //高效進(jìn)階版   使計(jì)算機(jī)少跑幾行
for(i=0;i<n;i++)          //因?yàn)樽叩氖切?#xff0c;所以列不動(dòng)  s+=b[i][0]+[i][n-1];   //將第一列與最后一列加滿
//這里的j要是繼續(xù)從0開(kāi)始走到m的話,需要在后面的s減掉四個(gè)重復(fù)的角;
for(j=1;j<m-1;j++)        //因?yàn)樽叩氖橇?#xff0c;所以行不動(dòng) s+=b[0][j]+[n-1][j];   //將第一行與最后一行加滿

參考文獻(xiàn):

[1]

[2]

[3]

[4]

http://www.risenshineclean.com/news/37863.html

相關(guān)文章:

  • 商標(biāo)注冊(cè)核名查詢系統(tǒng)成都百度快照優(yōu)化排名
  • 做電力 公司網(wǎng)站seo網(wǎng)絡(luò)推廣是什么意思
  • 公司網(wǎng)站注意事項(xiàng)產(chǎn)品推廣詞
  • 南昌網(wǎng)站建設(shè)基本流程上海網(wǎng)絡(luò)推廣公司
  • 移動(dòng)版網(wǎng)站怎么做如何自己創(chuàng)建一個(gè)網(wǎng)站
  • 12306網(wǎng)站為什么做那么差如何進(jìn)行線上推廣
  • 用.net做網(wǎng)站好 還是用php建站之星
  • 帶做網(wǎng)站天天外鏈官網(wǎng)
  • 成都sem優(yōu)化西seo優(yōu)化排名
  • 南京品牌網(wǎng)站設(shè)計(jì)免費(fèi)創(chuàng)建個(gè)人網(wǎng)站
  • wordpress全站靜態(tài)頁(yè)面百度網(wǎng)站排名怎么提高
  • 展示型裝飾網(wǎng)站模板網(wǎng)站排名快速提升
  • 騰訊云服務(wù)器用什么軟件做網(wǎng)站怎么從網(wǎng)上找國(guó)外客戶
  • 網(wǎng)站開(kāi)發(fā)維護(hù)花費(fèi)seo關(guān)鍵詞分析表
  • 學(xué)院網(wǎng)站建設(shè)與管理辦法今日國(guó)家新聞
  • 抖音代運(yùn)營(yíng)需要什么資質(zhì)東莞優(yōu)化怎么做seo
  • 建站網(wǎng)絡(luò)電商網(wǎng)站建設(shè)開(kāi)發(fā)
  • 網(wǎng)站建設(shè)A系列套餐報(bào)價(jià)代寫(xiě)文章多少錢
  • 網(wǎng)站后臺(tái)分析圖怎么做seo去哪學(xué)
  • 沈丘做網(wǎng)站yooker百度seo手機(jī)
  • 建設(shè)物流網(wǎng)站的規(guī)劃網(wǎng)絡(luò)營(yíng)銷戰(zhàn)略的內(nèi)容
  • 網(wǎng)站浮動(dòng)窗口如何做江西seo推廣
  • 建設(shè)網(wǎng)站企業(yè)排行網(wǎng)絡(luò)營(yíng)銷工程師前景
  • 網(wǎng)站開(kāi)發(fā)費(fèi)用稅常德網(wǎng)站設(shè)計(jì)
  • wordpress主題ruikedu正規(guī)seo關(guān)鍵詞排名哪家專業(yè)
  • 怎么做app和網(wǎng)站購(gòu)物最好的營(yíng)銷策劃公司
  • php網(wǎng)站后臺(tái)管理模板推廣排名
  • 什么是網(wǎng)站排名優(yōu)化百度關(guān)鍵詞挖掘工具
  • 廣廣東網(wǎng)站建設(shè)百度軟件下載中心官方網(wǎng)站
  • 網(wǎng)站建設(shè)頁(yè)面設(shè)計(jì)南寧百度seo軟件