資源描述:
《一維數(shù)組 字符數(shù)組 結(jié)構(gòu) 結(jié)構(gòu)數(shù)組和二維數(shù)組 程序舉例 本章小.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在PPT專區(qū)-天天文庫。
1、一維數(shù)組字符數(shù)組結(jié)構(gòu)結(jié)構(gòu)數(shù)組和二維數(shù)組程序舉例本章小結(jié)第四章數(shù)組和結(jié)構(gòu)4.1一維數(shù)組一維數(shù)組的定義和初始化一維數(shù)組元素的引用一維數(shù)組的應(yīng)用4.1一維數(shù)組任務(wù)4.1半期考試結(jié)束了,教師想看看C語言這門課程的最高分,以及有哪幾位學(xué)生得到了這個最高分。試編程解決這個問題,為簡單起見,假設(shè)班上共有10人。算法分析:首先需解決學(xué)生成績的存儲問題可以用10個變量,分別取名為score1,score2,……,score10來存儲10名學(xué)生的成績,但程序擴(kuò)展性很差使用一個包含10個元素的數(shù)組,將每位學(xué)生的成績存儲到相應(yīng)的數(shù)組元素中4.1.1一維數(shù)組的定義及初始化1
2、.數(shù)組的聲明類型說明符數(shù)組名[常量表達(dá)式];①類型說明符定義數(shù)組的基類型,即數(shù)組中各元素的類型。②數(shù)組名的第一個字符最好為英文字母,其他要求與定義變量名時相同。③常量表達(dá)式定義數(shù)組中可以放多少元素。必須是整型常量。④用方括號將常量表達(dá)式括起。⑤數(shù)組下標(biāo)從0開始。如果定義了10個元素,是從第0個元素到第9個元素。常量表達(dá)式中不允許包含變量,但可以使用常變量。intscore[10];intn=10;intscore[n];constintn=10;intscore[n];4.1.1一維數(shù)組的定義及初始化2.數(shù)組元素的初始化(1)給全部數(shù)組元素賦初值i
3、ntscore[3]={78,89,98};(2)給部分?jǐn)?shù)組元素賦初值intscore[5]={78,89,98};(3)賦初值個數(shù)與數(shù)組長度intscore[2]={78,89,98};intscore[]={78,89,98};4.1.2一維數(shù)組元素的引用一維數(shù)組下標(biāo)變量的格式數(shù)組名[下標(biāo)]例如:intscore[10]={0},i=1;score[1];score[i];score[10];注意:C語言不檢查數(shù)組邊界,程序可以在數(shù)組兩邊越界,寫入其他變量,甚至寫入程序代碼段。如果使用了負(fù)數(shù)下標(biāo)或超過數(shù)組長度的下標(biāo),C仍計(jì)算這個下標(biāo)的位置,并使
4、用它,在運(yùn)行和編譯時也沒有任何錯誤提示,程序繼續(xù)運(yùn)行,并訪問別的變量的存儲空間或根本不存在的存儲空間。4.1.3一維數(shù)組的應(yīng)用任務(wù)4.1算法分析先用鍵盤輸入10位學(xué)生的成績,分別存放到score數(shù)組的相應(yīng)下標(biāo)變量中,并找出最高分,然后再依次將10位學(xué)生的成績與最高分比較,輸出得分為最高分的學(xué)生的序號,最后輸出獲得最高分的學(xué)生人數(shù)。4.1.3一維數(shù)組的應(yīng)用任務(wù)4.1程序4_1.cpp變量定義及數(shù)組元素輸入constintn=10;//使用常變量定義學(xué)生人數(shù)intscore[n];//定義成績數(shù)組,有n個整型元素intmaxScore=0;//最高分,
5、并初始化為0intmaxStudent=0;//得到最高分的學(xué)生人數(shù)inti;//循環(huán)變量for(i=0;i>score[i];//輸入第i位學(xué)生的成績if(maxScore6、Score){//如果第i位學(xué)生的成績等于最高分maxStudent++;//得最高分的學(xué)生人數(shù)增1cout<
7、較,如果相等則終止循環(huán)。如果元素比較完還未找到輸入的數(shù),則輸出0。4.1.3一維數(shù)組的應(yīng)用例4.1算法分析①從第一位學(xué)生到最后一位學(xué)生依次與輸入成績進(jìn)行比較for(i=1;i<=n;i++)//計(jì)數(shù)循環(huán),從前到后進(jìn)行循環(huán){if(score[i]==x)//如果當(dāng)前成績等于待查找成績break;//則退出循環(huán)}if(i<=n){cout<<"查找成功,待查找成績是第“<
8、比較for(i=n;i>=1;i--)//計(jì)數(shù)循環(huán),從前到后進(jìn)行循環(huán){if(score[i]==x)//如果當(dāng)前成績等于待