![C語言項(xiàng)目化教程(基于智能制造軟件)課件 羅穎 項(xiàng)目5-9 汽車銷售數(shù)據(jù)-汽車數(shù)據(jù)文件讀寫(文件)_第1頁](http://file4.renrendoc.com/view14/M00/0B/13/wKhkGWcpcrWAR_18AAH31_uYOy4949.jpg)
![C語言項(xiàng)目化教程(基于智能制造軟件)課件 羅穎 項(xiàng)目5-9 汽車銷售數(shù)據(jù)-汽車數(shù)據(jù)文件讀寫(文件)_第2頁](http://file4.renrendoc.com/view14/M00/0B/13/wKhkGWcpcrWAR_18AAH31_uYOy49492.jpg)
![C語言項(xiàng)目化教程(基于智能制造軟件)課件 羅穎 項(xiàng)目5-9 汽車銷售數(shù)據(jù)-汽車數(shù)據(jù)文件讀寫(文件)_第3頁](http://file4.renrendoc.com/view14/M00/0B/13/wKhkGWcpcrWAR_18AAH31_uYOy49493.jpg)
![C語言項(xiàng)目化教程(基于智能制造軟件)課件 羅穎 項(xiàng)目5-9 汽車銷售數(shù)據(jù)-汽車數(shù)據(jù)文件讀寫(文件)_第4頁](http://file4.renrendoc.com/view14/M00/0B/13/wKhkGWcpcrWAR_18AAH31_uYOy49494.jpg)
![C語言項(xiàng)目化教程(基于智能制造軟件)課件 羅穎 項(xiàng)目5-9 汽車銷售數(shù)據(jù)-汽車數(shù)據(jù)文件讀寫(文件)_第5頁](http://file4.renrendoc.com/view14/M00/0B/13/wKhkGWcpcrWAR_18AAH31_uYOy49495.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語言程序設(shè)計(jì)項(xiàng)目五汽車銷售數(shù)據(jù)C語言程序設(shè)計(jì)項(xiàng)目五
汽車銷售數(shù)據(jù)C語言程序設(shè)計(jì)熟悉一組數(shù)組的概念、定義、引用、初始化熟悉二維數(shù)組的概念、定義、引用、初始化熟悉字符數(shù)組的概念、定義、引用、初始化了解字符串處理函數(shù)知識(shí)目標(biāo)會(huì)準(zhǔn)確一、二維數(shù)組和字符數(shù)組的定義與初始化格式,實(shí)現(xiàn)數(shù)據(jù)的輸入與輸出。能夠熟練地應(yīng)用數(shù)組進(jìn)行數(shù)據(jù)的查找、排序等。能力目標(biāo)項(xiàng)目五汽車銷售數(shù)據(jù)01顯示某品牌新能源汽車一年的銷售額(一維數(shù)組的輸入與輸出)02求某品牌新能源汽車一年的最高銷售月(一位數(shù)組求最值)03對(duì)某品牌新能源汽車銷售人員業(yè)績(jī)排序(一位數(shù)組排序)04顯示某車企的新能源汽車品牌(字符數(shù)組)05某車企多年銷售統(tǒng)計(jì)(二維數(shù)組)引入:期末考試中需要輸入成績(jī),那每位同學(xué)一個(gè)成績(jī),需要定義很多變量。每位同學(xué)又有多門成績(jī),那么需求的變量更多,有沒有簡(jiǎn)單一點(diǎn)的辦法呢?01知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
創(chuàng)建一個(gè)C語言程序,顯示某品牌新能源汽車客車每月新增量(1-6月,每月新增量為60,54,50,70,36,51)。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉一、一維數(shù)組的定義程序經(jīng)常使用同類的數(shù)據(jù),例如我們要處理一些成績(jī),可以聲明intgrade1,grade2,grade3;然而如果成績(jī)量很大時(shí),就要使用大量的標(biāo)識(shí)符進(jìn)行表示,且標(biāo)識(shí)符必須唯一,這樣做是很麻煩的,此時(shí)我們應(yīng)該使用數(shù)組。數(shù)組是具有相同類型的數(shù)據(jù)項(xiàng)的序列,是一種用于表示大量同類值的數(shù)據(jù)類型,我們通過下標(biāo)訪問數(shù)組的元素。定義格式:類型標(biāo)識(shí)符數(shù)組名[整型常量表達(dá)式];例:intgrade[3];說明:(1)類型標(biāo)識(shí)符:用來指定數(shù)組中各個(gè)元素的類型(2)數(shù)組名:與變量定義類似,必須是合法用戶標(biāo)識(shí)符(3)整型常量表達(dá)式:表示數(shù)組長度(數(shù)組元素個(gè)數(shù))(4)C編譯系統(tǒng)為數(shù)組分配連續(xù)的存儲(chǔ)空間知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉一、一維數(shù)組的定義structstudent{intsno;
intname;
charsex(3);intage;charaddress(30);doublehight;doubleweight;}使用下標(biāo)表示訪問數(shù)組的各個(gè)元素,用方括號(hào)括住表示數(shù)組的下標(biāo)。
為了在程序中使用grade[0]、grade[1]、grade[2],我們聲明intgrade[3];聲明中的整數(shù)3表示數(shù)組的數(shù)量范圍,即數(shù)組中元素的個(gè)數(shù)。注意,數(shù)組元素的下標(biāo)總是從0開始。
一維數(shù)組聲明是一個(gè)類型后跟一個(gè)帶有方括號(hào)括起來的常量整數(shù)表達(dá)式的標(biāo)識(shí)符。常量表達(dá)式指定了數(shù)組的尺寸,但它的值必須是正的;它指定了數(shù)組中元素的個(gè)數(shù)。為了存儲(chǔ)數(shù)組的元素,編譯器會(huì)分配從一個(gè)基地址開始的適當(dāng)大小的內(nèi)存。1.一維數(shù)組的初始化
當(dāng)定義一個(gè)數(shù)組時(shí),系統(tǒng)根據(jù)類型說明,分配由常量表達(dá)式所指定的相應(yīng)數(shù)量的存儲(chǔ)單元,一個(gè)存儲(chǔ)單元對(duì)應(yīng)一個(gè)數(shù)組元素。
數(shù)組的初始化實(shí)質(zhì)上就是在定義數(shù)組時(shí),為每一個(gè)數(shù)組元素賦初值。數(shù)組的初始化是在編譯階段完成的,不占用運(yùn)行時(shí)間。這樣可以使數(shù)組元素在程序開始運(yùn)行前就得到初值,從而節(jié)約了運(yùn)行時(shí)間,提高了執(zhí)行速度。
一維數(shù)組的初始化可分為以下幾種情況:①給全部數(shù)組元素賦初值例:intarray[8]={1,2,3,4,5,6,7,8};在給全部數(shù)組元素賦初值的情況下,也可以寫成如下形式:intarray[]={1,2,3,4,5,6,7,8};系統(tǒng)會(huì)根據(jù){}中的8個(gè)數(shù)據(jù)自動(dòng)定義數(shù)組array的長度為8。②給部分元素賦值在定義一個(gè)數(shù)組時(shí),可以只給部分元素賦初值,但不能越過前面的元素給后面的元素的賦值。后面未被賦值的元素根據(jù)其數(shù)據(jù)類型自動(dòng)取為0或‘\0’例:inta[6]={1,2,3};//等價(jià)于inta[6]={1,2,3,0,0,0};*/charc[4]={‘a(chǎn)’,‘b’};//等價(jià)于charc[4]={‘a(chǎn)’,‘b’,‘\0’,‘\0’};知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
二、一維數(shù)組解析知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉二、一維數(shù)組解析2.一維數(shù)組元素的引用
數(shù)組是一組數(shù)組元素的順序集合,數(shù)組名代表了整個(gè)數(shù)組存儲(chǔ)空間的首地址。當(dāng)我們對(duì)數(shù)組進(jìn)行操作時(shí),不能對(duì)整個(gè)數(shù)組進(jìn)行操作,只能對(duì)其中的數(shù)組元素進(jìn)行操作。一維數(shù)組元素的引用方式為:數(shù)組名[下標(biāo)表達(dá)式]下標(biāo)表達(dá)式即為該數(shù)組元素在數(shù)組中的位置。例如:若有如下定義:intgrade[3];
則grade[0]、grade[2]、grade[i]、grade[i+j]都是數(shù)組元素合法的引用形式,但要注意下標(biāo)的取值范圍,它的下限為0,上限為數(shù)組長度-1。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口三、一維數(shù)組程序代碼#include"stdio.h"http://頭文件#defineN10//定義符號(hào)常量voidmain(){//主函數(shù)
intgrade[N],i;//定義整型數(shù)組gradefor(i=0;i<N;i++)scanf("%d",&grade[i]);//通過輸入語句對(duì)數(shù)組元素賦值for(i=0;i<10;i++)printf("%d號(hào)的成績(jī)?yōu)?d\n",i+1,grade[i]);//輸出數(shù)組元素}例1.鍵盤輸入10個(gè)同學(xué)的C語言成績(jī),并顯示每個(gè)同學(xué)的成績(jī)。知識(shí)儲(chǔ)備
C語言程序設(shè)計(jì)(1)樹生長程中的分叉
一維數(shù)組程序解析數(shù)組grade需要存儲(chǔ)10個(gè)整數(shù)值的內(nèi)存空間。假設(shè)我們的機(jī)器用4個(gè)字節(jié)存儲(chǔ)一個(gè)int型的值。如果grade[0]存儲(chǔ)地址為2000,那么其余的數(shù)組元素連續(xù)的存儲(chǔ)地址為2004、2008、2012、2016、2020、2024、2028、2032、2036。如圖5-1所示。
第2行代碼,把數(shù)組的尺寸定義為符號(hào)常量,這是一種良好的編程習(xí)慣。因?yàn)楹芏啻a要依賴這個(gè)值,要改變數(shù)組的大小,可在#define中很方便地改變?cè)撝怠Mǔ0炎兞縤用作數(shù)組的下標(biāo)變量。第6第7行代碼是一種處理全部數(shù)組元素的關(guān)鍵性習(xí)慣用法。一般下標(biāo)變量從0開始,一直到N-1。任務(wù)分析與實(shí)踐C語言程序設(shè)計(jì)(1)樹生長程中的分叉
程序代碼#include"stdio.h"#define
N6//定義符號(hào)常量,表示有6個(gè)月void
main(){int
V_number[N]={60,54,50,70,36,51};//定義存放新增量的數(shù)組,并賦初值int
i;//循環(huán)變量指示下標(biāo)printf("某市海格新能源全天然氣客車月新增量明線表\n");printf("1月份\t2月份\t3月份\t4月份\t5月份\t6月份\n");for
(i=0;i<N;i++)
printf("%d\t",V_number[i]);//輸出6個(gè)月的數(shù)據(jù)}
項(xiàng)目五任務(wù)一C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例1已知某品牌4S店的一年12月的銷售量分別為{10,12,15,14,16,8,7,14,16,17,11,12},輸出12個(gè)月的銷售數(shù)據(jù)。算法過程:1.定義變量2.輸入銷售量(注意數(shù)組格式)3.輸出銷售量
項(xiàng)目五任務(wù)一C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例1已知某品牌4S店的一年12月的銷售量分別為{10,12,15,14,16,8,7,14,16,17,11,12},輸出12個(gè)月的銷售數(shù)據(jù)。#include"stdio.h"main(){intsales[12];inti;printf("請(qǐng)輸入銷售量:(12個(gè)月)\n");for(i=0;i<12;i++){printf("%d月",i+1);scanf("%d",&sales[i]);}printf("1-12月某品牌4S店銷售情況表:\n");printf("一月\t二月\t三月\t四月\t五月\t六月\t七月\t八月\t九月\t十月\t十一月\t十二月\n");for(i=0;i<12;i++){printf("%d\t",sales[i]);}printf("\n");}項(xiàng)目五任務(wù)一C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2算法過程:1.定義變量耗油量,總耗油量,平均耗油量,i;2.求總耗油量;3.計(jì)算平均耗油量;4.輸出平均耗油量;下表為某品牌新能源小客車在不同時(shí)段的耗油量,數(shù)組賦初值為各個(gè)時(shí)段的耗油量,編寫程序求出該小客車的平均耗油量。時(shí)段時(shí)段1時(shí)段2時(shí)段3時(shí)段4時(shí)段5時(shí)段6時(shí)段7時(shí)段8時(shí)段9耗油量8.58.89.210.17.88.68.78.79.5項(xiàng)目五任務(wù)一C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2#include"stdio.h"main(){ floatoilconsumption[9]={8.5,8.8,9.2,10.1,7.8,8.6,8.7,8.7,9.5};floatsum_oilconsumption=0,avg_oilconsumption; inti;for(i=0;i<9;i++) {sum_oilconsumption+=oilconsumption[i]; }avg_oilconsumption=sum_oilconsumption/9.0; printf("平均耗油量:%f\n",avg_oilconsumption);}項(xiàng)目五任務(wù)一C語言程序設(shè)計(jì)
(1)樹生長程中的分叉典型案例3算法過程:1.定義變量2.輸出銷售人員的銷售等級(jí)(注意數(shù)組成員類型)已知某品牌4S店的10位銷售人員根據(jù)每年的銷售量情況,分為不同等級(jí)的銷售員,分別為’A’,’B’,’C’,’D’,每位銷售人員等級(jí)為:'C','A','B','A','C','B','D','C','C','A'要求按照格式輸出銷售人員的銷售等級(jí)。(字符數(shù)組)項(xiàng)目五任務(wù)一C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例3/*Note:YourchoiceisCIDE*//*典型案例3:已知某品牌4S店的銷售人員根據(jù)每年的銷售量情況,分為不同等級(jí)的銷售員,分別為’A’,’B’,’C’,’D’,要求輸出銷售人員的銷售等級(jí)。*/#include"stdio.h"voidmain(){charsalesman[10]={'C','A','B','A','C','B','D','C','C','A'};inti;for(i=0;i<10;i++){printf("銷售員%d,等級(jí):%c\n",i+1,salesman[i]);} }項(xiàng)目五任務(wù)一C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉鞏固練習(xí)1.從鍵盤輸入5名駕駛員的工資,求工資的平均值2.在選擇車牌時(shí),有時(shí)可以隨機(jī)產(chǎn)生,假設(shè)隨機(jī)產(chǎn)生的是后五位并且都是數(shù)字,隨機(jī)產(chǎn)生10個(gè)車牌存放在車牌數(shù)組中,并輸出。3.在選擇車牌時(shí),有時(shí)可以隨機(jī)產(chǎn)生,假設(shè)隨機(jī)產(chǎn)生的是后五位并且都是數(shù)字,隨機(jī)產(chǎn)生20個(gè)車牌存放在車牌數(shù)組中,并挑選最后一位是偶數(shù)的車牌存放在另一個(gè)數(shù)組中。C語言程序設(shè)計(jì)項(xiàng)目五汽車銷售數(shù)據(jù)C語言程序設(shè)計(jì)項(xiàng)目三項(xiàng)目五汽車銷售數(shù)據(jù)01顯示某品牌新能源汽車一年的銷售額(一維數(shù)組的輸入與輸出)02求某品牌新能源汽車一年的最高銷售月(一維數(shù)組求最值)03對(duì)某品牌新能源汽車銷售人員業(yè)績(jī)排序(一維數(shù)組排序)04顯示某車企的新能源汽車品牌(字符數(shù)組)05某車企多年銷售統(tǒng)計(jì)(二維數(shù)組)引入:數(shù)據(jù)的查找,求最值是我們?nèi)粘I钪凶畛R姷氖虑?,那程序中如何?shí)現(xiàn)呢,本節(jié)我們就來學(xué)習(xí)這個(gè)內(nèi)容。02知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
從鍵盤輸入8位駕駛員身高,輸出個(gè)子最低的駕駛員的身高和對(duì)應(yīng)的下標(biāo)。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉一、數(shù)組1.對(duì)數(shù)組中數(shù)據(jù)進(jìn)行查找時(shí),通過循環(huán)逐一進(jìn)行比較。程序代碼一般為:for(i=0;i<數(shù)組長度;i++)
if(數(shù)組名[i]==查找數(shù)據(jù))
break;2.對(duì)數(shù)組中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),一般經(jīng)過兩步操作:第一步對(duì)數(shù)組元素進(jìn)行篩選,可以用if語句也可以使用swtich語句;第二步根據(jù)條件進(jìn)行統(tǒng)計(jì)。3.求最值
第一步定義變量,目的是為了存儲(chǔ)最大或者最小值,
第二步每一個(gè)數(shù)組元素的值與定義的變量進(jìn)行比較,根據(jù)要求進(jìn)行替換知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口二、一維數(shù)組程序代碼#include<stdio.h>voidmain(){ ints[10]={12,9,7,11,10,15,13,14,16,8}; intx,i; for(i=0;i<10;i++)
printf("%4d",s[i]); printf("\n"); printf("請(qǐng)輸入要查找的數(shù)據(jù):");
示例1:已知數(shù)組s中存有以下數(shù)據(jù):12、9、7、11、10、15、13、14、16和8,編寫程序,用戶從鍵盤輸入一個(gè)數(shù)據(jù),從數(shù)組中找出該數(shù)據(jù)。scanf("%d",&x);
for(i=0;i<10;i++)
if(s[i]==x)break;if(i<10)
printf("s[%d]=%d\n",i,s[i]);
elseprintf("該數(shù)據(jù)不存在!\n"); }知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口二、一維數(shù)組程序代碼#include<stdio.h>voidmain(){
intscore[7]={75,49,87,61,80,55,93};
inti,passnum=0,failnum=0;for(i=0;i<7;i++)
printf("%4d",score[i]);
printf("\n");
for(i=0;i<7;i++)
if(score[i]>=60)
passnum++;示例2:已知數(shù)組score中存有以下成績(jī):75、49、87、61、80、55、93,編寫程序,分別統(tǒng)計(jì)及格的人數(shù)和不及格人數(shù)。else
failnum++;printf("及格人數(shù)為%d\n不及格人數(shù)為%d\n",passnum,failnum);}知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口三、一維數(shù)組程序代碼#include"stdio.h"voidmain(){ints[10]={12,4,5,6,7,89},i=0,min,m;min=s[0];m=0;for(i=1;i<6;i++){if(min>s[i])
{min=s[i];m=i+1;
}
}printf("s[%d]=%d\n",m,min);
}示例3、已知數(shù)組s中的數(shù)據(jù)為12,4,5,6,7,89,求他們的最小值。項(xiàng)目五任務(wù)二C語言程序設(shè)計(jì)
(1)樹生長程中的分叉任務(wù)分析與實(shí)踐從鍵盤輸入8位駕駛員身高,輸出個(gè)子最低的駕駛員的身高和對(duì)應(yīng)的下標(biāo)。#include"stdio.h"voidmain(){ doubledriver_H[8],driverH_min; inti; intdriverH_num; printf("請(qǐng)輸入8名駕駛員的身高"); for(i=0;i<8;i++) { scanf("%lf",&driver_H[i]); } driverH_min=driver_H[0]; driverH_num=0;
for(i=0;i<8;i++) { if(driver_H[i]<driverH_min) { driverH_min=driver_H[i]; driverH_num=i;
} } printf("最低駕駛員的下標(biāo)為%d,身高為%lf",driverH_num,driverH_min);}項(xiàng)目五任務(wù)二C語言程序設(shè)計(jì)
(1)樹生長程中的分叉已知某品牌4S店的一年12月的銷售量分別為{10,12,15,14,16,8,7,14,16,17,11,12},輸出12個(gè)月的最高銷量。(參考變量銷售量sales,最大銷售量max_sales)算法過程:1.定義數(shù)組,并賦初值2.令max_sales=sales[0];3.依次用max_sales和sales[i]循環(huán)判斷;4.輸出max_sales典型案例1項(xiàng)目五任務(wù)二C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例1已知某品牌4S店的一年12月的銷售量分別為{10,12,15,14,16,8,7,14,16,17,11,12},輸出12個(gè)月的銷售數(shù)據(jù)。/*Note:YourchoiceisCIDE*//*典型案例1:已知某品牌4S店的一年中每個(gè)月的銷售量分別為{10,12,15,14,16,8,7,14,16,17,11,12},輸出這12個(gè)月的最高銷量。*/#include"stdio.h"voidmain(){intsales[12]={10,12,15,14,16,8,7,14,16,17,11,12};intmax_sales=sales[0],i;for(i=1;i<12;i++){ if(max_sales<sales[i]) max_sales=sales[i];
}printf("最高銷售量=%d",max_sales);}項(xiàng)目五任務(wù)二C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2算法過程:1.定義數(shù)組,并且賦初值;2.令min_oilconsumption=oilconsumption[0]
;3.依次用min_oilconsumption和oilconsumption[i]
循環(huán)比較;
4.輸出min_oilconsumption下表為某品牌新能源小客車在不同時(shí)段的耗油量,編寫程序求出該小客車的耗油量最小的時(shí)段。時(shí)段時(shí)段1時(shí)段2時(shí)段3時(shí)段4時(shí)段5時(shí)段6時(shí)段7時(shí)段8時(shí)段9耗油量8.58.89.210.17.88.68.78.79.5項(xiàng)目五任務(wù)二C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2/*Note:YourchoiceisCIDE典型案例2:下表為某品牌新能源小客車在不同時(shí)段的耗油量,編寫程序求出該小客車的最小耗油量。*/#include"stdio.h"voidmain(){floatoilconsumption[9]={8.5,8.8,9.2,10.1,7.8,8.6,8.7,8.7,9.5};floatmin_oilconsumption=oilconsumption[0];inti;for(i=1;i<9;i++){ if(min_oilconsumption>oilconsumption[i]) { min_oilconsumption=oilconsumption[i]; }}printf("最小耗油量是:%.1f",min_oilconsumption);}項(xiàng)目五任務(wù)二C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉鞏固練習(xí)1.從鍵盤輸入5名駕駛員的工資,求高于平均工資的駕駛員。2.2020年某地區(qū)5月份10天的最高氣溫依次是(℃):30313032323333323132。編寫程序,分別統(tǒng)計(jì)出32℃和33℃各占多少天。3.輸入10個(gè)整數(shù)存入一維數(shù)組,輸出值和下標(biāo)都為奇數(shù)的元素個(gè)數(shù)。4.已知數(shù)組s中存有以下數(shù)據(jù):12、9、7、11、10、15、13、14、16和8,編寫程序,用戶從鍵盤輸入一個(gè)數(shù)據(jù),從數(shù)組中找出該數(shù)據(jù)。C語言程序設(shè)計(jì)項(xiàng)目五汽車銷售數(shù)據(jù)C語言程序設(shè)計(jì)項(xiàng)目三項(xiàng)目五汽車銷售數(shù)據(jù)01顯示某品牌新能源汽車一年的銷售額(一維數(shù)組的輸入與輸出)02求某品牌新能源汽車一年的最高銷售月(一維數(shù)組求最值)03對(duì)某品牌新能源汽車銷售人員業(yè)績(jī)排序(一維數(shù)組排序)04顯示某車企的新能源汽車品牌(字符數(shù)組)05某車企多年銷售統(tǒng)計(jì)(二維數(shù)組)引入:對(duì)于雜亂無章的數(shù)據(jù),有時(shí)我們需要按照一定規(guī)律進(jìn)行排列,我們本次課程就來研究這個(gè)問題。03知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
創(chuàng)建一個(gè)C語言程序,按非遞減順序顯示某市海格新能源全天然氣客車的月新增量(1-6月,每月新增量為60,54,50,70,36,51)。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉1.排序?qū)τ谒阉鞔笮蛿?shù)據(jù)庫來說,對(duì)信息進(jìn)行排序的算法是至關(guān)重要的。想象一下詞典或電話號(hào)碼本,用它們來查找信息都是相對(duì)容易和方便的,這是因?yàn)槠渲械男畔窗醋帜副砘蛟~曲順序排序了。排序是一種非常有助于解決問題的技術(shù),因此如何有效的排序的問題本身是一個(gè)重要的研究領(lǐng)域。排序有多種方式,有冒泡排序、簡(jiǎn)單選擇排序、直接插入排序等。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉2.冒泡排序這種方法可形象描述為:使較小的值象水中的氣泡一樣逐漸“上浮”到數(shù)組的頂部,而較大的值則逐漸“下沉”到數(shù)組的底部。這種技術(shù)要排序好幾輪,每輪都要比較連續(xù)的數(shù)組元素對(duì)。如果某一對(duì)元素的值本身是升序排的,那就保持原樣,否則交換其值。冒泡排序的基本思想是:從前向后依次比較相鄰兩個(gè)數(shù)的值,如果前者比后者大,那么這兩個(gè)數(shù)交換,否則不交換,第一次排序結(jié)束,最大數(shù)“后沉”到最后一個(gè)。排序過程示例(設(shè)N=8):每趟只將方括號(hào)中的數(shù)據(jù)從左向右兩兩比較,讓較大者不斷“后沉”到方括號(hào)外。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉2.冒泡排序假設(shè)原始數(shù)據(jù)[4938659776132750]第一趟排序后[38496576132750]97第二趟排序后[384965132749]7697第三趟排序后[3849132750]657697第四趟排序后[38132749]50657697第五趟排序后[132738]4950657697第六趟排序后[1327]384950657697第七趟排序后[13]27384950657697最后排序結(jié)果1327384950657697讀者可以看到第五趟排序結(jié)束后,其實(shí)已經(jīng)得到我們最終所需的結(jié)果了,如果不對(duì)程序進(jìn)行優(yōu)化,計(jì)算機(jī)就一定會(huì)進(jìn)行七趟排序,那么應(yīng)該如何處理,請(qǐng)讀者自行思考,也可查看相關(guān)資料。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口3.選擇法排序選擇法的基本思想是:用變量p來存放最大數(shù)所在的位置,若數(shù)組中有n個(gè)數(shù),首先p中存放0,認(rèn)為a[0]中數(shù)最大。然后把a(bǔ)[p]跟后面的a[1]比較,若a[1]比a[p]大,則p=1;否則p不變。接著a[p]跟后面的a[2]比較,若a[2]比a[p]大,則p=2;否則p不變。接著a[p]跟后面的a[3]比,a[4]比,……,與最后一個(gè)元素比較。這時(shí)p中存放的是所有元素中最大元素所在的位置。把a(bǔ)[0]中的數(shù)與a[p]中的數(shù)交換。a[0]中存放最大元素。再從余下的n-1個(gè)數(shù)中找最大的數(shù)與a[1]交換,重復(fù)直到排序結(jié)束。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(假設(shè)原始數(shù)據(jù)[4938659776132750]第一趟排序后13[38659776492750]第二趟排序后1327[659776493850]第三趟排序后132738[9776496550]第四趟排序后13273849[76976550]第五趟排序后1327384950[976576]第六趟排序后132738495065[9776]第七趟排序后13273849506576[97]最后排序結(jié)果13273849506576973.選擇法排序知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口二、排序代碼示例:鍵盤輸入10個(gè)同學(xué)的C語言成績(jī),按從高到低顯示每個(gè)同學(xué)的成績(jī)。#include"stdio.h"#defineN10voidmain(){intgrade[N];inti,j,temp;for(i=0;i<N;i++)scanf("%d",&grade[i]);printf("排序前10位同學(xué)的成績(jī):\n");for(i=0;i<N;i++)printf("%d",grade[i]);printf("\n從高到低排序后10位同學(xué)的成績(jī):\n");for(i=0;i<N-1;i++)//冒泡排序{ for(j=0;j<N;j++)if(grade[j]<grade[j+1])//條件成立,相鄰兩個(gè)值進(jìn)行交換{temp=grade[j];grade[j]=grade[j+1];grade[j+1]=temp;}}for(i=0;i<N;i++)printf("%d",grade[i]);}項(xiàng)目五任務(wù)三C語言程序設(shè)計(jì)
(1)樹生長程中的分叉下表為海格某汽油小客車在不同時(shí)段的耗油量,編寫程序?qū)⒃撔】蛙嚨牟煌瑫r(shí)段耗油量從高到低進(jìn)行排列。數(shù)據(jù)如表5-3-1所示:算法過程:1.定義數(shù)組,并賦初值2.排序3.輸出典型案例1項(xiàng)目五任務(wù)二C語言程序設(shè)計(jì)
(1)樹生長程中的分叉下表為海格某汽油小客車在不同時(shí)段的耗油量,編寫程序?qū)⒃撔】蛙嚨牟煌瑫r(shí)段耗油量從高到低進(jìn)行排列。數(shù)據(jù)如表5-3-1所示:核心代碼for(i=0;i<9;i++){ for(j=0;j<8-i;j++) { if(oilconsumption[j]<oilconsumption[j+1]) { temp=oilconsumption[j]; oilconsumption[j]=oilconsumption[j+1]; oilconsumption[j+1]=temp; } }
}典型案例1項(xiàng)目五任務(wù)二C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2已知某品牌4S店的一年12月的銷售量分別為{10,12,15,14,16,8,7,14,16,17,11,12},將銷售量從小到大排序。for(i=0;i<=10;i++)核心代碼{ for(j=i+1;j<=11;j++) { if(sales[i]>sales[j]) { t=sales[j]; sales[j]=sales[i]; sales[i]=t; } }}項(xiàng)目五任務(wù)二C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉任務(wù)分析與實(shí)踐printf("排序前新增量:");for(i=0;i<N;i++)
printf("%d",V_number[i]);printf("\n");printf("排序后:"); for(i=0;i<N-1;i++) { p=i; for(j=i+1;j<N;j++) if(V_number[p]<V_number[j]) { p=j; } temp=V_number[p]; V_number[p]=V_number[i]; V_number[i]=temp; } for(i=0;i<N;i++) printf("%d",V_number[i]); printf("\n");項(xiàng)目五任務(wù)三C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉鞏固練習(xí)1.從鍵盤輸入20名駕駛員的工資,使用冒泡,順序,選擇其中一種方法進(jìn)行從低到高排序并輸出。并且畫出流程圖。2.從鍵盤輸入14個(gè)車輛的載重量,使用冒泡,順序,選擇其中一種方法進(jìn)行從高到低排序并輸出。并且畫出流程圖。C語言程序設(shè)計(jì)項(xiàng)目五汽車銷售數(shù)據(jù)C語言程序設(shè)計(jì)項(xiàng)目三項(xiàng)目五汽車銷售數(shù)據(jù)01顯示某品牌新能源汽車一年的銷售額(一維數(shù)組的輸入與輸出)02求某品牌新能源汽車一年的最高銷售月(一維數(shù)組求最值)03對(duì)某品牌新能源汽車銷售人員業(yè)績(jī)排序(一維數(shù)組排序)04顯示某車企的新能源汽車品牌(字符數(shù)組)05某車企多年銷售統(tǒng)計(jì)(二維數(shù)組)引入:在實(shí)際情況中,我們需要用到漢字或者多個(gè)字符的情況,這時(shí)我們就需要引入字符數(shù)組。04知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
從鍵盤輸入江蘇省的地級(jí)市,輸出車牌字符。(
A南京市B無錫市C徐州市D常州市
E蘇州市F南通市)任務(wù)目標(biāo)運(yùn)行截圖如圖5-4-1所示知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口一、一維字符數(shù)組與字符串①一維字符數(shù)組數(shù)組元素的類型是字符類型的一維數(shù)組稱為一維字符數(shù)組。定義一個(gè)一維數(shù)組時(shí),如果數(shù)據(jù)類型為char,這就是一個(gè)一維字符數(shù)組。例如:charch[10];定義了一個(gè)名為ch的一維字符數(shù)組,長度為10,系統(tǒng)為該數(shù)組開辟了10個(gè)連續(xù)的存儲(chǔ)單元,在這里,一個(gè)元素的存儲(chǔ)空間正好為一個(gè)字節(jié),所以系統(tǒng)開辟了10個(gè)連續(xù)的字節(jié)單元,ch為該連續(xù)存儲(chǔ)單元的首地址。可以引用數(shù)組的元素,如ch[0]=’a’;ch[9]=’\n’;等。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口一、一維字符數(shù)組與字符串②字符串
字符串就是一串字符的組合,但它的最后一個(gè)字符必定是’\0’。’\0’是一個(gè)轉(zhuǎn)義字符,它是字符型的“空值”,它的ASCII代碼值為0?!痋0’是字符串的結(jié)束標(biāo)志。在C語言中,字符串借助于一維字符數(shù)組來存放。在存儲(chǔ)時(shí),結(jié)束標(biāo)志’\0’占用存儲(chǔ)空間,但不計(jì)入字符串的實(shí)際長度。C語言中,字符串是用雙引號(hào)””作為定界符的。在表示字符串時(shí),不需要人為在其末尾加入’\0’。例如,字符串”COMPUTER”不必寫成”COMPUTER\0”,C的編譯系統(tǒng)在處理時(shí)會(huì)自動(dòng)在末尾添加’\0’。一個(gè)字符串在存儲(chǔ)時(shí),會(huì)占用內(nèi)存中一串連續(xù)的存儲(chǔ)空間,它有一個(gè)起始地址。這段連續(xù)的存儲(chǔ)空間實(shí)際中就是一個(gè)一維的字符數(shù)組,只是這個(gè)數(shù)組沒有名字。所以,在C語言中,字符串被隱含處理成一個(gè)以’\0’結(jié)尾的無名的一維字符數(shù)組,該字符串就表示內(nèi)存中一串連續(xù)存儲(chǔ)空間的首地址。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口一、一維字符數(shù)組與字符串③一維字符數(shù)組與字符串的區(qū)別一個(gè)一維字符數(shù)組中的每一個(gè)元素都可以存放一個(gè)字符,并且它不限定最后一個(gè)字符應(yīng)該是什么。而在C語言中,有關(guān)字符串的大量操作都與串結(jié)束標(biāo)志’\0’有關(guān),因此,字符串是最后一個(gè)字符必有’\0’的一維字符數(shù)組。當(dāng)一個(gè)一維字符數(shù)組的長度大于一個(gè)字符串的有效長度再加1時(shí),該一維字符數(shù)組可以用于存放該字符串。此時(shí),一維字符數(shù)組可以被“看作”是字符串變量。但它又不同于一般的變量,不能把一個(gè)字符串整體賦給一個(gè)數(shù)組。①通過初始化實(shí)現(xiàn)逐一元素地賦初值,這種方法同給一般數(shù)組賦初值的方式相同。例:charstr[10]={‘s’,’t’,’u’,’d’,’e’,’n’,’t’,’\0’};②賦初值時(shí),直接賦字符串常量例如:charch[8]={“student”};或者省略大括號(hào):charch[8]=“student”;③在執(zhí)行過程中給一維字符數(shù)組賦字符串前面已經(jīng)講過,不能給一個(gè)數(shù)組整體賦值,對(duì)一維字符數(shù)組同樣如此。只能給數(shù)組元素逐個(gè)賦字符值,最后人為加入串結(jié)束標(biāo)志。例如:charstr[8];str[0]=’s’;str[1]=’t’;str[2]=’u’;str[3]=’d’;str[4]=’e’;str[5]=’n’;str[6]=’7’;str[7]=’\0’;知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
二、將一個(gè)字符串賦給一個(gè)一維字符數(shù)組知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口三、字符串的輸入和輸出#include"stdio.h"#defineLEN51 voidmain(){ charch[LEN]; inti=0; scanf("%c",&ch[i]);①用”%c”格式字符逐個(gè)輸入和輸出例如:通過鍵盤輸入一字符串(以回車結(jié)束,假設(shè)長度不超過50),存放于數(shù)組ch中。while((ch[i]!='\n')) { i++; scanf("%c",&ch[i]); } ch[i]='\0'; i=0; while(ch[i]!='\0'){ printf("%c",ch[i]); i++; }}②用”%s”格式整體輸入和輸出例如:charch[20];scanf(“%s”,ch);說明:輸入項(xiàng)是一數(shù)組的數(shù)組名,也就是數(shù)組的首地址。功能:從鍵盤輸入一串字符,讀入到以ch開始的存儲(chǔ)單元中,以空格或回車符結(jié)束讀入。printf(“%s”,ch);說明:輸出項(xiàng)是一數(shù)組的數(shù)組名,也就是數(shù)組的首地址。功能:輸出以ch為起始地址的存儲(chǔ)單元的內(nèi)容到終端,遇到’\0’時(shí)結(jié)束輸出。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
三、將一個(gè)字符串賦給一個(gè)一維字符數(shù)組③用字符串輸入(gets)和輸出(puts)函數(shù)實(shí)現(xiàn)字符串的輸入和輸出字符串輸入(gets)和輸出(puts)函數(shù)的定義說明在頭文件”stdio.h”中,在程序中若調(diào)用這兩個(gè)函數(shù),必須在程序的開頭加入文件包含命令:#include“stdio.h”知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
三、將一個(gè)字符串賦給一個(gè)一維字符數(shù)組gets函數(shù)實(shí)現(xiàn)輸入調(diào)用形式如下:gets(str)說明:str為一確定的地址值,它可以是一個(gè)字符數(shù)組的數(shù)組名,也可以是今后要學(xué)到的已賦值的指針型變量。函數(shù)功能:調(diào)用該函數(shù)時(shí),用戶從鍵盤輸入一個(gè)字符串,以換行符(Enter鍵)作為輸入結(jié)束標(biāo)志;然后將接收到的字符(包括換行符)依次賦給以str為起始地址的存儲(chǔ)單元中,系統(tǒng)自動(dòng)用’\0’來代替最后的換行符。注意:gets函數(shù)調(diào)用中,空格不作為分隔符,它可以出現(xiàn)在字符串中,這是gets與scanf函數(shù)的主要區(qū)別。例如:charch[20];gets(ch);若輸入:IAM(回車),則在ch中將存入字符串”IAM”,而不是字符串”I”。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
三、將一個(gè)字符串賦給一個(gè)一維字符數(shù)組puts函數(shù)實(shí)現(xiàn)輸出調(diào)用形式如下:puts(str)說明:同gets(str)一樣,str為一確定的地址值。函數(shù)功能:調(diào)用該函數(shù)時(shí),系統(tǒng)從str這一地址開始,依次輸出存儲(chǔ)單元的內(nèi)容,直到遇到第一個(gè)’\0’,系統(tǒng)自動(dòng)將’\0’轉(zhuǎn)換成一個(gè)換行符輸出,并結(jié)束輸出。注意:puts函數(shù)輸出結(jié)束后換行,而printf函數(shù)輸出結(jié)束后并不自動(dòng)換行。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
三、將一個(gè)字符串賦給一個(gè)一維字符數(shù)組C語言有關(guān)字符的函數(shù)分為字符串函數(shù)和字符函數(shù)兩類,分別包含于頭文件“string.h”及頭文件“ctype.h”中。常用的字符串函數(shù)如表5-4-1所示,常用的字符函數(shù)如表5-4-2所示知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
四、常用字符串和字符函數(shù)知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
四、常用字符串和字符函數(shù)知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
四、常用字符串和字符函數(shù)任務(wù)分析與實(shí)踐C語言程序設(shè)計(jì)(1)樹生長程中的分叉
程序代碼#include"stdio.h"#include"string.h"voidmain(){charlicense_plate[8];printf("請(qǐng)輸入地級(jí)市");gets(license_plate);if(strcmp(license_plate,"南京市")==0)printf("A南京市");elseif(strcmp(license_plate,"無錫市")==0)printf("B無錫市");elseif(strcmp(license_plate,"蘇州市")==0)printf("E蘇州市");elseif(strcmp(license_plate,"南通市")==0)printf("F南通市");elseprintf("輸入有誤或者無記錄");}
項(xiàng)目五任務(wù)四C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例1典型案例1:從鍵盤輸入某輛車的車架號(hào),并輸出車架號(hào)。算法過程:1.定義字符串2.輸入字符串3.輸出字符串
項(xiàng)目五任務(wù)四C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例1典型案例1:從鍵盤輸入某輛車的車架號(hào),并輸出車架號(hào)。#include"stdio.h"voidmain(){charvin[18];printf("請(qǐng)輸入車架號(hào):");gets(vin);printf("車架號(hào)為");puts(vin);}
項(xiàng)目五任務(wù)四C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2從鍵盤輸入某輛車的車架號(hào),并求長度,判斷是否滿足車架號(hào)的長度。(車架長度17)典型案例2運(yùn)行截圖如圖5-4-3所示算法過程1.定義字符串2.輸入車架號(hào)3.求車架長度4判斷項(xiàng)目五任務(wù)四C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2從鍵盤輸入某輛車的車架號(hào),并求長度,判斷是否滿足車架號(hào)的長度。(車架長度17)典型案例2運(yùn)行截圖如圖5-4-3所示#include"stdio.h"voidmain(){charvin[18],i=0,len=0;printf("請(qǐng)輸入車架號(hào):");scanf("%s",vin);while(vin[i]!='\0'){len++;i++;}
if(len==17)printf("滿足車架號(hào)的長度!");elseprintf("車架號(hào)長度有誤!");}項(xiàng)目五任務(wù)四C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例3從鍵盤輸入某輛車的車架號(hào),再次輸入車架號(hào),判斷第二次和第一次輸入的車牌是否相等,相等顯示兩次車架號(hào)輸入一致,不相等顯示兩次車牌輸入不一致。算法過程1.定義變量2.輸入車架號(hào)3.判別
項(xiàng)目五任務(wù)四C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例3從鍵盤輸入某輛車的車架號(hào),再次輸入車架號(hào),判斷第二次和第一次輸入的車牌是否相等,相等顯示兩次車架號(hào)輸入一致,不相等顯示兩次車牌輸入不一致。if(strcmp(vin,vin2)==0)printf("兩次輸入車架號(hào)一致!");elseprintf("兩次輸入車架號(hào)不一致!");}#include"stdio.h"#include"string.h"voidmain(){charvin[20],vin2[20];inti=0,flag=0; printf("請(qǐng)輸入車架號(hào):");gets(vin);printf("請(qǐng)?jiān)俅屋斎胲嚰芴?hào):");gets(vin2);項(xiàng)目五任務(wù)四C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉鞏固練習(xí)1.從鍵盤輸入“我愛你中國”并輸出。2.從鍵盤輸入一名駕駛員的工號(hào),已知工號(hào)長11位,第一位為2,判別工號(hào)是否正確。3.輸入10名駕駛員的姓名,并按照姓名從高到低進(jìn)行排序并輸出姓名和序號(hào)。4.通過鍵盤將一句英文存放于一個(gè)字符數(shù)組中,統(tǒng)計(jì)該句子里面出現(xiàn)的單詞的個(gè)數(shù)(單詞之間用空格分隔)。(提高)5.一名用戶要求車牌是6位字符,并且滿足回文,從鍵盤輸入車牌,判斷是否滿足條件。C語言程序設(shè)計(jì)項(xiàng)目五汽車銷售數(shù)據(jù)C語言程序設(shè)計(jì)項(xiàng)目三項(xiàng)目五汽車銷售數(shù)據(jù)01顯示某品牌新能源汽車一年的銷售額(一維數(shù)組的輸入與輸出)02求某品牌新能源汽車一年的最高銷售月(一維數(shù)組求最值)03對(duì)某品牌新能源汽車銷售人員業(yè)績(jī)排序(一維數(shù)組排序)04顯示某車企的新能源汽車品牌(字符數(shù)組)05某車企多年銷售統(tǒng)計(jì)(二維數(shù)組)引入:一維數(shù)組只能處理一種批量數(shù)據(jù)情況,如果同種數(shù)據(jù)類型,更多種情況,此時(shí)就需要引入多維數(shù)組。05知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
新能源大客車在江蘇不同城市1-6月的新增情況如表5-5-1所示,請(qǐng)編寫程序輸出該明線表。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口一、二維數(shù)組C語言允許任何類型的數(shù)組,甚至允許數(shù)組的數(shù)組。使用兩對(duì)方括號(hào),我們就能得到二維數(shù)組。要得到高維數(shù)組,只要簡(jiǎn)單地繼續(xù)增加方括號(hào)即可。每使用一對(duì)方括號(hào),我們就對(duì)數(shù)組增加了一維。數(shù)組的格式如表5-5-2所示知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口一、二維數(shù)組一個(gè)k維數(shù)組的尺寸與各個(gè)維的尺寸有關(guān)。如果用Si代表數(shù)組的第i維尺寸,那么數(shù)組聲明為S1*S2*…*Sk個(gè)元素分配的空間。在上表中,b有20*30個(gè)元素,c有2*3*4個(gè)元素。從數(shù)組的基地址開始,所有的數(shù)組元素都存儲(chǔ)在連續(xù)的內(nèi)存中。即使數(shù)組元素是一個(gè)接一個(gè)地連續(xù)存儲(chǔ),我們也經(jīng)常把二維數(shù)組看作是由行和列組成的矩陣更為方便。例如,如果我們聲明inta[2][5],那么我們數(shù)組元素的排列如表5-5-3所示:知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口二、二維數(shù)組的定義、引用和聲明①二維數(shù)組的定義定義形式 類型數(shù)組名[行常量表達(dá)式][列常量表達(dá)式];
可以看作元素是一維數(shù)組的一維數(shù)組如:inta[3][4];/*3行4列*/②二維數(shù)組元素的引用二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)]如:a[2][3]、b[1][2]=a[2][3]/2、a[2][3]=3;注意: 其中下標(biāo)可以是整型表達(dá)式; 不要寫成a[2,3]等形式; 應(yīng)該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小范圍內(nèi); 定義數(shù)組時(shí)用的a[3][4]與引用數(shù)組元素時(shí)用的a[3][4]的區(qū)別。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口二、二維數(shù)組的定義、引用和聲明①二維數(shù)組的定義定義形式 類型數(shù)組名[行常量表達(dá)式][列常量表達(dá)式];
可以看作元素是一維數(shù)組的一維數(shù)組如:inta[3][4];/*3行4列*/②二維數(shù)組元素的引用二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)]如:a[2][3]、b[1][2]=a[2][3]/2、a[2][3]=3;注意: 其中下標(biāo)可以是整型表達(dá)式; 不要寫成a[2,3]等形式; 應(yīng)該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小范圍內(nèi); 定義數(shù)組時(shí)用的a[3][4]與引用數(shù)組元素時(shí)用的a[3][4]的區(qū)別。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口二、二維數(shù)組的定義、引用和聲明①二維數(shù)組的定義定義形式 類型數(shù)組名[行常量表達(dá)式][列常量表達(dá)式];
可以看作元素是一維數(shù)組的一維數(shù)組如:inta[3][4];/*3行4列*/②二維數(shù)組元素的引用二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)]如:a[2][3]、b[1][2]=a[2][3]/2、a[2][3]=3;注意: 其中下標(biāo)可以是整型表達(dá)式; 不要寫成a[2,3]等形式; 應(yīng)該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小范圍內(nèi); 定義數(shù)組時(shí)用的a[3][4]與引用數(shù)組元素時(shí)用的a[3][4]的區(qū)別。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口二、二維數(shù)組的定義、引用和聲明鍵盤輸入5個(gè)同學(xué)的2門課程的成績(jī),顯示每個(gè)同學(xué)的學(xué)號(hào)及成績(jī)明細(xì)。
printf("學(xué)號(hào)課程1課程2\n");//輸出表頭
for(i=0;i<5;i++) { printf("%d",i+1);//輸出學(xué)號(hào)
for(j=0;j<2;j++) { printf("%.1f",score[i][j]);//輸出每門課程的成績(jī)
} printf("\n"); }}#include"stdio.h"voidmain(){ floatscore[5][2]; inti,j; for(i=0;i<5;i++)//外循環(huán)次數(shù)由人數(shù)確定
for(j=0;j<2;j++)//內(nèi)循環(huán)次數(shù)由課程數(shù)確定
{ scanf("%f",&score[i][j]); }
任務(wù)分析與實(shí)踐C語言程序設(shè)計(jì)(1)樹生長程中的分叉
程序代碼#include"stdio.h"voidmain(){ intV_number[6][4]={{24,14,13,16},{20,16,16,25},//二維數(shù)組賦初值
{18,30,20,43},{24,10,8,12},{10,5,6,8},{8,5,5,7}}; inti,j; printf("蘇州無錫常州南京\n"); for(i=0;i<6;i++) { printf("%d月",i+1); for(j=0;j<4;j++) { printf("%6d",V_number[i][j]); } printf("\n"); }項(xiàng)目五任務(wù)五C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例1典型案例1:已知某品牌4S店2名銷售的12個(gè)的銷售額如表5-5-4所示,輸出2名銷售12個(gè)月的銷售數(shù)據(jù)。算法過程:1.定義二維數(shù)組2.輸出月份抬頭3.輸出數(shù)值
項(xiàng)目五任務(wù)五C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例1典型案例1:已知某品牌4S店2名銷售的12個(gè)的銷售額如表5-5-4所示,輸出2名銷售12個(gè)月的銷售數(shù)據(jù)。#include"stdio.h"voidmain(){intsales[2][12]={{3,1,2,4,2,4,2,2,3,0,1,3},{2,4,4,3,3,2,1,4,3,3,2,2}}; inti,j; for(i=1;i<=12;i++) { printf("%d月份",i); } printf("\n");
}
for(i=0;i<2;i++) { for(j=0;j<12;j++) printf("%d",sales[i][j]); printf("\n"); }}
項(xiàng)目五任務(wù)五C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2從鍵盤輸入某品牌新能源客車5名駕駛員12個(gè)月的工資,并輸出。項(xiàng)目五任務(wù)五C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2從鍵盤輸入某品牌新能源客車5名駕駛員12個(gè)月的工資,并輸出。#include"stdio.h"voidmain(){ floatsalary[3][6]; inti,j; for(i=0;i<3;i++) {printf("駕駛員%d六個(gè)月工資:",i+1); for(j=0;j<6;j++) { scanf("%f",&salary[i][j]); } }
printf("駕駛員6個(gè)月的工資明線表\n"); for(i=0;i<3;i++){ printf("駕駛員%-4d",i+1); for(j=0;j<6;j++) printf("%d月份",j+1);//5個(gè)空格
printf("\n"); printf("");//10個(gè)空格
for(j=0;j<6;j++) printf("%-10.2f",salary[i][j]); printf("\n"); }}項(xiàng)目五任務(wù)五C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例3從鍵盤輸入某品牌新能源客車3名駕駛員6個(gè)月的工資,分別求出3名駕駛員的平均工資。項(xiàng)目五任務(wù)五C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例4從鍵盤輸入某品牌新能源客車5名駕駛員的姓名并輸出。項(xiàng)目五任務(wù)五C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例4從鍵盤輸入某品牌新能源客車5名駕駛員的姓名并輸出。#include"stdio.h"voidmain(){ chardriver[5][20]; inti; printf("請(qǐng)輸入五名駛員的姓名:"); for(i=0;i<5;i++){ gets(driver[i]); } printf("五名駛員的姓名分別為:"); for(i=0;i<5;i++) printf("%s",driver[i]);}項(xiàng)目五任務(wù)五C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉鞏固練習(xí)1.已知有兩個(gè)矩陣,A[2][3],B[3][2],計(jì)算A*B的乘積C,其中Cij=Ai0*B0j+Ai1*B1j+Ai2*B2j。2.從鍵盤輸入一個(gè)3行4列的數(shù)組,求最大值和其下標(biāo)。任務(wù)目標(biāo)今年是中國共產(chǎn)黨成立100周年,請(qǐng)編程計(jì)算某一天距離中國共產(chǎn)黨成立的天數(shù)。(不能使用相關(guān)的日期函數(shù),閏年判定的規(guī)則:被4整除且不能被100整除,或能被400整除)
例:輸入年:1950月:10日:1程序輸出10684輸入年:2021月:7日:1程序輸出36525C語言程序設(shè)計(jì)項(xiàng)目六模塊化設(shè)計(jì)C語言程序設(shè)計(jì)項(xiàng)目六
模塊化設(shè)計(jì)C語言程序設(shè)計(jì)理解函數(shù)的定義理解主調(diào)函數(shù)和被調(diào)函數(shù)、實(shí)參和形參、函數(shù)的返回值、函數(shù)的聲明熟悉函數(shù)的嵌套調(diào)用熟悉函數(shù)的遞歸調(diào)用了解數(shù)組名作為函數(shù)的參數(shù)知識(shí)目標(biāo)會(huì)函數(shù)的定義和說明格式。能通過進(jìn)行函數(shù)的調(diào)用,學(xué)會(huì)函數(shù)的參數(shù)傳遞,得到正確的函數(shù)返回值。會(huì)利用函數(shù)的嵌套和遞歸調(diào)用強(qiáng)化模塊化程序設(shè)計(jì)思路。能力目標(biāo)項(xiàng)目八項(xiàng)目六01
顯示車輛數(shù)據(jù)(無參數(shù)無返回值類型)02根據(jù)車輛品牌,顯示車輛數(shù)據(jù)(有參數(shù)無返回值類型)
03根據(jù)車輛品牌,顯示銷售額(有返回值類型)04根據(jù)駕駛員的工作年限,求工資的數(shù)額(嵌套和遞歸)
引入:01前面我們完成了輸入年月日求天數(shù)的練習(xí),在軟件開發(fā)中,要實(shí)現(xiàn)的功能很多,如果都放到主函數(shù)中完成,代碼太多,不方便運(yùn)行和調(diào)試,如果有的功能需要多次執(zhí)行,還需要寫多遍,這時(shí)我們需要一種新的功能。項(xiàng)目六任務(wù)一C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口問題的提出
對(duì)于一個(gè)完整的監(jiān)控系統(tǒng),除了數(shù)據(jù)的采集、發(fā)送和接收,還需要在接收端顯示電動(dòng)汽車的運(yùn)行狀態(tài),觀察數(shù)據(jù)特點(diǎn),并加以應(yīng)對(duì),本節(jié)通過一個(gè)顯示函數(shù)實(shí)現(xiàn)車輛數(shù)據(jù)的顯示功能。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
創(chuàng)建一個(gè)C語言程序,輸出某集團(tuán)新能源M型大客車6-12月新增明線表。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉一、有關(guān)函數(shù)的說明:(1)一個(gè)較大的程序一般應(yīng)分為若干個(gè)程序模塊,每一個(gè)模塊用來實(shí)現(xiàn)一個(gè)特定的功能。在C語言中,用函數(shù)來實(shí)現(xiàn)各功能模塊。
(2)一個(gè)C程序可由一個(gè)main主函數(shù)和若干個(gè)其它函數(shù)構(gòu)成。由主函數(shù)調(diào)用其它函數(shù)。
(3)一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)組成,它們是一個(gè)整體。一個(gè)源程序是一個(gè)編譯單位。
(4)C程序的執(zhí)行總是從main主函數(shù)開始,調(diào)用其它函數(shù)后流程回到main主函數(shù),在main主函數(shù)中結(jié)束整個(gè)程序的運(yùn)行。main主函數(shù)是系統(tǒng)定義的。
(5)所有函數(shù)都是獨(dú)立的,完成一個(gè)特定的功能。
(6)從用戶使用的角度看,函數(shù)有兩種:
①標(biāo)準(zhǔn)函數(shù),即庫函數(shù)。
②用戶自己定義的函數(shù)。知識(shí)儲(chǔ)備C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉二、無參無返回函數(shù)的定義形式void函數(shù)名(){
聲明部分
語句}主函數(shù)中的調(diào)用的寫法函數(shù)名();項(xiàng)目六任務(wù)一C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例1下表為某集團(tuán)新能源某不同類型客車在不同時(shí)段的耗油量,編寫程序,要求自定義兩個(gè)函數(shù),分別輸出表頭和內(nèi)容。主函數(shù)流程圖表頭流程圖內(nèi)容流程圖項(xiàng)目六任務(wù)一C語言程序設(shè)計(jì)
(1)樹生長程中的分叉典型案例1#include"stdio.h"voidprint_head(){inti;printf("集團(tuán)新能源某不同類型客車在不同時(shí)段的耗油量\n");for(i=1;i<=8;i++)printf("時(shí)段%d\t",i);printf("\n");}voidprint_details({floatoilconsumption[2][8]={{8.5,8.8,9.2,10.1,7.8,8.6,8.7,8.7},{10.2,11,13,14.5,8.9,9.7,9.7,9.8}};下表為某集團(tuán)新能源某不同類型客車在不同時(shí)段的耗油量,編寫程序,要求自定義兩個(gè)函數(shù),分別輸出表頭和內(nèi)容。inti,j;for(i=0;i<2;i++) { for(j=0;j<8;j++){ printf("%.2f\t",oilconsumption[i][j]); } printf("\n"); }}main(){
print_head(); print_details();}項(xiàng)目六任務(wù)一C語言程序設(shè)計(jì)
典型案例2從鍵盤輸入某品牌新能源客車5名駕駛員12個(gè)月的工資,并輸出。項(xiàng)目六任務(wù)一C語言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹生長程中的分叉典型案例2從鍵盤輸入某品牌新能源客車5名駕駛員12個(gè)月的工資,并輸出。#include"stdio.h"floatsalary[3][6];voidinput_salary(){inti,j;for(i=0;i<3;i++){printf("駕駛員%d六個(gè)月工資:",i+1);for(j=0;j<6;j++){scanf("%f",&salar
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度爆破工程風(fēng)險(xiǎn)管理及應(yīng)急預(yù)案編制合同
- 單位合理用電合同范本
- 代銷電子合同范本
- 眼健康科普常見眼病的預(yù)防與治療
- 臨床試驗(yàn)合同范例
- 2025年中國中藥黨參市場(chǎng)競(jìng)爭(zhēng)格局分析及投資方向研究報(bào)告
- 水產(chǎn)業(yè)中推動(dòng)實(shí)現(xiàn)可持續(xù)發(fā)展目標(biāo)的綠色制造策略研究
- 2025年中國皮帶輪行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 化工板塊污水綜合管廊建設(shè)項(xiàng)目資金申請(qǐng)報(bào)告
- 個(gè)人食堂合伙合同范例
- 體育活動(dòng)策劃與組織課件
- 公司違規(guī)違紀(jì)連帶處罰制度模版(2篇)
- 2025屆高考物理二輪總復(fù)習(xí)第一編專題2能量與動(dòng)量第1講動(dòng)能定理機(jī)械能守恒定律功能關(guān)系的應(yīng)用課件
- 內(nèi)業(yè)資料承包合同個(gè)人與公司的承包合同
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫(共380題含答案)
- 【履職清單】2024版安全生產(chǎn)責(zé)任體系重點(diǎn)崗位履職清單
- 跨學(xué)科實(shí)踐活動(dòng)10調(diào)查我國航天科技領(lǐng)域中新型材料新型能源的應(yīng)用課件九年級(jí)化學(xué)人教版(2024)下冊(cè)
- 2022年全國醫(yī)學(xué)博士英語統(tǒng)一考試試題
- 學(xué)校工作總結(jié)和存在的不足及整改措施
- Petrel中文操作手冊(cè)(1-3)
- 《工業(yè)自動(dòng)化技術(shù)》課件
評(píng)論
0/150
提交評(píng)論