版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2024/2/71數(shù)據(jù)結構用C語言描述2024/2/72緒論●1.7
關于學習數(shù)據(jù)結構
1.1
數(shù)據(jù)結構的基本概念(定義)1.2數(shù)據(jù)結構的內(nèi)容(研究范圍)1.3
算法設計1.4
算法描述工具
1.5
對算法作性能評價1.6
數(shù)據(jù)結構與C語言表示2024/2/731.1數(shù)據(jù)結構的基本概念(定義)數(shù)據(jù)結構的相關名詞:數(shù)據(jù)(Data)數(shù)據(jù)元素(DataElement)數(shù)據(jù)對象(DataObject)數(shù)據(jù)結構(DataStructure)數(shù)據(jù)類型(DataType)數(shù)據(jù)抽象與抽象數(shù)據(jù)類型2024/2/74數(shù)據(jù)(Data)定義:數(shù)據(jù)是描述客觀事物的數(shù)值、字符以及能輸入機器且能被處理的各種符號集合。數(shù)據(jù)包含整型、實型、布爾型、圖象、字符、聲音等一切可以輸入到計算機中的符號集合。C編譯程序源程序(.c)目標程序(.obj)可執(zhí)行程序(.exe)C鏈接程序例如對C源程序2024/2/75數(shù)據(jù)元素(DataElement)定義:
數(shù)據(jù)元素是組成數(shù)據(jù)的基本單位,是數(shù)據(jù)集合的個體,在計算機中通常作為一個整體進行考慮和處理。例如:..................北京1983.11河北女
趙虹玲101住
址
出生年月
籍
貫性
別
姓
名
學
號
數(shù)據(jù)元素數(shù)據(jù)項2024/2/76數(shù)據(jù)對象(DataObject)
定義:數(shù)據(jù)對象是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。整數(shù)集合:N={0,±1,±2,…}無限集字符集合:C={ˊAˊ,Bˊ,…,ˊZˊ}有限集例如:2024/2/77數(shù)據(jù)結構(DataStructure)
定義:
數(shù)據(jù)結構是指相互之間存在一種或多種特定關系的數(shù)據(jù)元素集合,是帶有結構的數(shù)據(jù)元素的集合,它指的是數(shù)據(jù)元素之間的相互關系,即數(shù)據(jù)的組織形式。例如表結構:..................北京1983.11河北女
趙虹玲101住
址
出生年月
籍
貫性
別
姓
名
學
號
2024/2/78數(shù)據(jù)結構(DataStructure)樹型結構圖結構125432024/2/79數(shù)據(jù)類型(DataType)
定義:
數(shù)據(jù)類型是一組性質(zhì)相同的值集合以及定義在這個值集合上的一組操作的總稱。如在高級語言中,整型類型的取值范圍為:-32768~+32767,運算符集合為加、減、乘、除、取模,即+、-、*、/、%。2024/2/710數(shù)據(jù)類型(DataType)高級語言中的數(shù)據(jù)類型分為兩大類:1.原子類型,其值不可分解。如C語言中的標準類型(整型、實型、字符型、)。2.結構類型,其值是由若干成分按某種結構組成的,因此是可以分解的,并且它的成分可以是非結構的,也可以是結構的。指針類型屬于哪種類型?2024/2/711數(shù)據(jù)抽象與抽象數(shù)據(jù)類型數(shù)據(jù)的抽象抽象數(shù)據(jù)類型(AbstractDataType)抽象數(shù)據(jù)類型實現(xiàn)
ADT的表示與實現(xiàn)面向?qū)ο蟮母拍罱Y構化的開發(fā)方法與面向?qū)ο箝_發(fā)方法不同點2024/2/7121.2數(shù)據(jù)結構的內(nèi)容
邏輯結構
存儲結構
運算集合
2024/2/713邏輯結構定義: 數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間邏輯關系描述。形式化描述:
Data_Structure=(D,R)其中D是數(shù)據(jù)元素的有限集,R是D上關系的有限集。四類基本的結構集合結構、線性結構、樹型結構、圖狀結構。2024/2/714集合結構定義:
結構中的數(shù)據(jù)元素之間除了同屬于一個集合的關系外,無任何其它關系。
集合例如:2024/2/715線性結構定義: 結構中的數(shù)據(jù)元素之間存在著一對一的線性關系。
例如:線性表2024/2/716樹型結構定義:
結構中的數(shù)據(jù)元素之間存在著一對多的層次關系。
例如:
樹2024/2/717圖狀結構或網(wǎng)狀結構
定義: 結構中的數(shù)據(jù)元素之間存在著多對多的任意關系。例如:
圖2024/2/718綜上所述,數(shù)據(jù)的邏輯結構可概括為:線性結構——線性表、棧、隊、字符串數(shù)組、廣義表邏輯結構非線性結構——樹、圖邏輯結構2024/2/719存儲結構
定義:
存儲結構(又稱物理結構)是邏輯結構在計算機中存儲映象,是邏輯結構在計算機中的實現(xiàn),它包括數(shù)據(jù)元素的表示和關系的表示。
形式化描述:
D要存入機器中,建立一從D的數(shù)據(jù)元素到存儲空間M單元映象S,D→M,即對于每一個d,d∈D,都有唯一的z∈M使S(D)=Z,同時這個映象必須明顯或隱含地體現(xiàn)關系R。2024/2/720邏輯結構與存儲結構的關系為:存儲結構是邏輯關系的映象與元素本身映象,是數(shù)據(jù)結構的實現(xiàn);邏輯結構是數(shù)據(jù)結構的抽象。數(shù)據(jù)元素之間關系在計算機中的表示方法:順序映象(順序存儲結構)非順序映象(非順序存儲結構)存儲結構
2024/2/721運算集合例如工資表:編號姓名性別基本工資工齡工資應扣工資實發(fā)工資100001張愛芬女345.67145.4530.00451.12100002李
林
男
445.90185.6045.00586.50100003劉曉峰
男
345.00130.0025.00450.00100004趙
俊
女
560.90225.9065.00721.80100005孫
濤
男
450.60190.8050.00591.80…………………100121張興強
男
1025.98365.53100.001291.512024/2/722數(shù)據(jù)結構的內(nèi)容
綜上所述,數(shù)據(jù)結構的內(nèi)容可歸納為三個部分,邏輯結構、存儲結構和運算集合:按某種邏輯關系組織起來的一批數(shù)據(jù),按一定的映象方式把它存放在計算機存貯器中,并在這些數(shù)據(jù)上定義了一個運算的集合,就叫做數(shù)據(jù)結構。
2024/2/7231.3算法
算法(Algorithm)定義
算法的特性
算法設計的要求
2024/2/724算法(Algorithm)定義定義:
Algorithmisafinitesetofruleswhichgivesasequenceofoperationforsolvingaspecifictypeofproblem.
算法是規(guī)則的有限集合,是為解決特定問題而規(guī)定的一系列操作。
2024/2/725算法的特性1.有限性:有限步驟之內(nèi)正常結束,不能形成無窮循環(huán)2.確定性:算法中的每一個步驟必須有確定含義,無二義性得以實現(xiàn)。3.輸入:有多個或0個輸入4.輸出:至少有一個或多個輸出。5.可行性:原則上能精確進行,操作可通過已實現(xiàn)基本運算執(zhí)行有限次而完成。2024/2/726算法設計的要求
算法的正確性
算法特征:
可讀性
健壯性
高效率和低存儲量例如要求n個數(shù)的最大值問題給出算法如下:
max:=0;for(i=1;i<=n;i++)
{scanf("%f",x);if(x>max)max=x;}2024/2/7271.4算法描述的工具
概述:
算法+數(shù)據(jù)結構=程序
算法、語言、程序的關系
設計實現(xiàn)算法過程步驟類描述算法的語言選擇2024/2/728算法、語言、程序的關系1.算法:描述了數(shù)據(jù)對象的元素之間的關系(包括數(shù)據(jù)邏輯關系、存貯關系描述)。2.描述算法的工具:算法可用自然語言、框圖或高級程序設計語言進行描述。3.程序是算法在計算機中的實現(xiàn)。2024/2/729設計實現(xiàn)算法過程步驟1.找出與求解有關的數(shù)據(jù)元素之間的關系2.確定在某一數(shù)據(jù)對象上所施加運算3.考慮數(shù)據(jù)元素的存儲表示4.選擇描述算法的語言5.設計實現(xiàn)求解的算法,并用程序語言加以描述。2024/2/730類描述算法的語言選擇類語言:類語言是接近于高級語言而又不是嚴格的高級語言,具有高級語言的一般語句設施,撇掉語言中的細節(jié),以便把注意力主要集中在算法處理步驟本身的描述上。2024/2/7313.賦值語句對C語言作以下描述:(1)簡單賦值
1)〈變量名〉=〈表達式〉
2)〈變量〉++,
3)〈變量〉--,(2)串聯(lián)賦值〈變量1〉=〈變量2〉=〈變量3〉=…=〈變量k〉=〈表達式〉
2024/2/732對C語言作以下描述:(4)條件賦值〈變量名〉=〈條件表達式〉?〈表達式1〉:〈表達式2〉
(3)成組賦值(<變量>,<變量2>,<變量3>,…<變量k〉=(<表達式1>,<表達式2>,<表達式3>,…<表達式k>)〈數(shù)組名1〉[下標1][下標2]=〈數(shù)組名2〉[下標1][下標2]
2024/2/7334.條件選擇語句對C語言作以下描述:if(<表達式>)語句;if(<表達式>)語句1;else語句2;2024/2/734情況語句switch(<表達式>)
{case判斷值1:
語句組1;
break;case判斷值2:
語句組2;
break;……case判斷值n:
語句組n;break;[default:
語句組;
break;]}對C語言作以下描述:2024/2/735對C語言作以下描述:5.循環(huán)語句for語句for(<表達式1>;<表達式2>;<表達式3>){循環(huán)體語句;}2024/2/736while語句while(<條件表達式>)
{循環(huán)體語句;
}對C語言作以下描述:do–while語句do{循環(huán)體語句
}while(<條件表達式>)
2024/2/7371.5對算法作性能評價
評價算法的標準: 評價一個算法主要看這個算法所占用機器資源的多少,而這些資源中時間代價與空間代價是兩個主要的方面,通常是以算法執(zhí)行所需的機器時間和所占用的存儲空間來判斷一個算法的優(yōu)劣。
性能評價有關數(shù)量關系計算
2024/2/738性能評價定義:
對問題規(guī)模與該算法在運行時所占的空間S與所耗費的時間T給出一個數(shù)量關系的評價。問題規(guī)模N—對不同的問題其含義不同:
對矩陣是階數(shù);
對多項式運算是多項式項數(shù);對圖是頂點個數(shù);對集合運算是集合中元素個數(shù)。2024/2/739有關數(shù)量關系計算
數(shù)量關系評價體現(xiàn)在時間——算法在機器中所耗費時間。數(shù)量關系評價體現(xiàn)在空間——算法在機器中所占存儲量。關于算法執(zhí)行時間語句頻度
算法的時間復雜度數(shù)據(jù)結構中常用的時間復雜度頻率計數(shù)
最壞時間復雜度
算法的空間復雜度
2024/2/740關于算法執(zhí)行時間定義:
一個算法的執(zhí)行時間大致上等于其所有語句執(zhí)行時間的總和,對于語句的執(zhí)行時間是指該條語句的執(zhí)行次數(shù)和執(zhí)行一次所需時間的乘積。分析:
不是針對實際執(zhí)行時間的精確地算出算法執(zhí)行具體時間,而是針對算法中語句的執(zhí)行次數(shù)做出估計,從中得到算法執(zhí)行時間的信息。2024/2/741語句頻度
定義: 語句頻度是指該語句在一個算法中重復執(zhí)行的次數(shù)。例如:兩個矩陣相乘算法語句對應的語句頻度
1 for(i=0;i<n;i++)n2 for(j=0;j<n;j++)n23{c[i][j]=0;n24for(k=0;k<n;k++)n3c[i][j]=c[i][j]+a[i][k]*b[k][j];n3
}
總執(zhí)行次數(shù):Tn=2n3+2n2+n2024/2/742算法的時間復雜度
算法的時間復雜度,即是算法的時間量度記做: T(n)=O(f(n))例如給出X=X+1(1)x=x+1;時間復雜度為O(1),稱為常量階;(2)for(i=1;i<=n;i++)x=x+1;時間復雜度為O(n),稱為線性階;(3)for(i=1;i<=n;i++) for(j=1;j<=n;j++)x=x+1;時間復雜度為O(n2),
稱為平方階。2024/2/743常用的時間復雜度頻率計數(shù)
數(shù)據(jù)結構中常用的時間復雜度頻率計數(shù)有7個:O(1)常數(shù)型O(n)線性型O(n2)平方型O(n3)立方型O(2n)指數(shù)型O(log2n)對數(shù)型O(nlog2n)二維型按時間復雜度由小到大排列的頻率表:2024/2/744常用的時間復雜度頻率計數(shù)常用的時間復雜度頻率表:log2nnnlog2nn2n32n一般講:前3種可實現(xiàn),后3種雖理論上是可實現(xiàn)的,實際上只有對N限制在很小范圍才有意義,當N較大時,不可能實現(xiàn)。
0101121224842481664163824645122564166425650966553653216010243276821474836482024/2/745最壞時間復雜度
定義:
討論算法在最壞情況下的時間復雜度,即分析最壞情況下以估計出算法執(zhí)行時間的上界。例如冒泡排序算法2024/2/746voidbubble(inta[],intlength){將a中整數(shù)數(shù)組重新排序,達到遞增有序}inti=0,j,temp;intchange;do{ change=false; for(j=1;j<length-i;j++) if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;change=true;} i=i+1;}while(i<length||change==true)}最壞時間復雜度
2024/2/747算法的空間復雜度
定義:
用空間復雜度作為算法所需存儲空間的量度,記做:S(n)=O(f(n))
。2024/2/7481.6數(shù)據(jù)結構與C語言表示
1.6.1數(shù)據(jù)結構與程序設計的關聯(lián)性
問題描述:欲求1名學生10次C語言程序設計的測試成績總分與平均分。其中10次測驗的成績分別為:80,85,77,56,68,83,90,92,80,98。
2024/2/749程序示例1-1:main(){intsum,verage;/*總分,平均分*/intt1,t2,t3,t4,t5,t6,t7,t8,t9,t10;/*10個變量存10次成績*/t1=80;t2=85;t3=77;t4=56;t5=68;/*分別賦值*/t6=83;t7=90;t8=92;t9=80;t10=98;sum=t1+t2+t3+t4+t5+t6+t7+t8+t9+t10;/*計算總分*/average=sum/10;/*計算平均分*/printf(“總分=%d\n”,sum);printf(“平均分=%d\n”,average);}2024/2/750根據(jù)測試次數(shù)與測試成績的關系,采用數(shù)組結構存儲測驗成績,提高了程序的適用范圍。main(){intsum,erage;inti;intt[10]=80,85,77,56,68,83,90,92,80,98}/*分別賦值*/sum=0;/*總分置初值*/for(i=0;i<10;i++)sum=sum+t[i];average=sum/10;/*計算平均分*/printf(“總分=%d\n”,sum);printf(“平均分=%d\n”,average);}程序示例1-2:2024/2/7511.6.2結構化程序設計與函數(shù)的模塊化
結構化程序設計:是為使程序具有合理的結構,以保證程序正確性而規(guī)定的一套程序設計的方法。程序設計的實質(zhì):算法+數(shù)據(jù)結構=程序
即“程序是在數(shù)據(jù)的特定表示方式的基礎上,對抽象算法的具體描述”。程序結構=控制結構+數(shù)據(jù)結構
2024/2/752①
結構化程序設計目的通過設計結構良好的程序,以程序的靜態(tài)良好結構保證程序動態(tài)執(zhí)行的正確性,使程序易理解、易調(diào)試、易維護,以提高軟件開發(fā)的效率,減少出錯率。②結構化程序設計的構成單元任何程序都可由順序、選擇、重復三種基本控制結構來組成。③結構化程序設計方法
其一:“自頂向下,逐步求精”的設計思想;其二:“獨立功能,一個入口,一個出口“的模塊化結構;其三:“僅用三種基本控制結構”的設計原則
2024/2/7531.6.3面向?qū)ο笈c抽象數(shù)據(jù)類型1.面向?qū)ο蟮母拍睿好嫦驅(qū)ο?對象+類+繼承+通信對象:指在應用問題中出現(xiàn)的各種實體、事件、規(guī)格說明等。類:具有相同屬性和服務的對象
繼承:是面向?qū)ο蠓椒ǖ淖钣刑厣姆矫妗?/p>
2024/2/754面向?qū)ο蟪绦蛟O計的特點是封裝性、繼承性和多態(tài)性
與數(shù)據(jù)結構密切相關的是定義在數(shù)據(jù)結構上的一組操作。
基本操作主要有:⑴插入:在數(shù)據(jù)結構中的指定位置上增添新的數(shù)據(jù)元素;⑵刪除:刪去數(shù)據(jù)結構中某個指定數(shù)據(jù)元素;⑶更新:改變數(shù)據(jù)結構中某個元素的值,在概念上等價于刪除和插入操作的組合;⑷查找:在數(shù)據(jù)結構中尋找滿足某個特定要求的數(shù)據(jù)元素(的位置和值);
⑸排序:(在線性結構中)重新安排數(shù)據(jù)元素之間的邏輯順序關系,使數(shù)據(jù)元素按值由小到大或由大到小的次序排列。
2024/2/755結構化與面向?qū)ο箝_發(fā)方法的不同點
結構化的開發(fā)方法:是面向過程的開發(fā)方法,首先著眼于系統(tǒng)要實現(xiàn)的功能。面向?qū)ο蟮拈_發(fā)方法:首先著眼于應用問題所涉及的對象,包括對象、對象屬性和要求的操作,從而建立對象結構和為解決問題需要執(zhí)行的時間序列。2024/2/756數(shù)學模型抽象數(shù)據(jù)模型數(shù)據(jù)結構非形式算法偽語言程序可執(zhí)行程序用抽象數(shù)據(jù)類型的概念來指導問題的求解過程:2.抽象數(shù)據(jù)類型與問題求解方法
定義:
抽象數(shù)據(jù)類型(簡稱ADT)是指基于一類邏輯關系的數(shù)據(jù)類型以及定義在這個類型之上的一組操作。一個抽象數(shù)據(jù)類型確定了一個模型,但將模型的實現(xiàn)細節(jié)隱藏起來;它定義了一組運算,但將運算的實現(xiàn)過程隱藏起來。2024/2/757數(shù)據(jù)的抽象匯編語言中十進制表示的數(shù)據(jù)98.65、9.6E3等,它們是二進制數(shù)據(jù)的抽象;高級語言中,給出更高一級的數(shù)據(jù)抽象,如整型、實型、字符型等,還可以進一步定義更高級的數(shù)據(jù)抽象,如各種表、隊、棧、樹、圖、窗口、管理器等復雜的抽象數(shù)據(jù)類型。2024/2/758抽象數(shù)據(jù)類型線性表的抽象數(shù)據(jù)類型的描述:ADTLinear_list數(shù)據(jù)元素所有ai屬于同一數(shù)據(jù)對象,i=1,2,……,nn≥0;邏輯結構所有數(shù)據(jù)元素ai(i=1,2,…,n-1)存在次序關系
<ai,ai+1>,ai無前趨,an無后繼;操作設L為Linear_list Initial(L)初始化空線性表;
Length(L)求線性表的表長;
Get(L,i)取線性表的第i個元素;
Insert(L,i,b)在線性表的第i個位置插入元素b;
Delete(L,i)刪除線性表的第i個元素;
2024/2/759抽象數(shù)據(jù)類型實現(xiàn)傳統(tǒng)的面向過程的程序設計實現(xiàn)的三種方法:“包”、“模型”的設計方法面向?qū)ο蟮某绦蛟O計(ObjectOrientedProgramming,簡稱OOP)2024/2/760ADT的表示與實現(xiàn)
ADT的定義:ADT<ADT名>
{數(shù)據(jù)對象:<數(shù)據(jù)對象的定義>
結構關系:<結構關系的定義>
基本操作:<基本操作的定義>
}ADT<ADT名>
基本操作的定義格式為:<操作名稱>(參數(shù)表)操作前提:<操作前提描述>操作結果:<操作結果描述>2024/2/761關于參數(shù)傳遞:參數(shù)表中的參數(shù)有值參和變參兩種。用標準C語言表示和實現(xiàn)ADT描述時,主要有兩個方面:
二、用C語言函數(shù)實現(xiàn)各操作。一、通過結構體將int、float等固有類型組合到一起,構成一個結構類型,再用typedef為該類型或該類型指針重新起一個名字。ADT的表示與實現(xiàn)
2024/2/7621.6.4算法描述規(guī)范與設計風格
1.算法表示格式與函數(shù)模塊化
[函數(shù)返回值類型]函數(shù)名([形式參數(shù)及說明]){內(nèi)部數(shù)據(jù)說明;執(zhí)行語句組;
}/*函數(shù)名*/算法表示格式2024/2/7631.6.4算法描述規(guī)范與設計風格
函數(shù)的模塊化
1.算法表示格式與函數(shù)模塊化
[包含文件語句][宏定義語句][自定義類型語句][所有子函數(shù)的原型說明][子函數(shù)1定義]...[子函數(shù)n定義][主函數(shù)定義]
2024/2/7642.算法描述要點
1.6.4算法描述規(guī)范與設計風格
加上必要的注釋
注釋形式可以用/*字符串*/避免函數(shù)返回值隱含說明
預定義常量和類型
#defineTRUE1#defineFALSE0#defineMAXSIZE100#defineOK1#defineERROR02024/2/765避免可能出現(xiàn)的二義性表達
注意不同的退出語句區(qū)別
return<表達式>或return:用于函數(shù)結束。break語句:可用在循環(huán)語句或switch語句中結束循環(huán)過程或跳出情況語句。continue語句:可用在循環(huán)語句中結束本次循環(huán)過程,進入下一次循環(huán)過程。
exit語句:表示出現(xiàn)異常情況時,控制退出函數(shù)。
使用有意義的函數(shù)名與變量名
2.算法描述要點
1.6.4算法描述規(guī)范與設計風格
簡化輸入、輸出表述規(guī)范多分支轉(zhuǎn)向2024/2/7663.與參數(shù)傳遞的相關技術
1.6.4算法描述規(guī)范與設計風格
變量的作用域
全局變量:程序中所有函數(shù)都可以訪問的量
局部變量:只能在該函數(shù)中訪問的量。
參數(shù)傳遞方式
參數(shù)傳遞是函數(shù)之間進行信息通訊的重要渠道。其參數(shù)傳遞的主要方式有傳值和傳地址兩類。函數(shù)參數(shù)表中的參數(shù)有兩種:第一種參數(shù)只為操作提供待處理數(shù)據(jù),又稱值參;第二種參數(shù)既能為操作提供待處理數(shù)據(jù),又能返回操作結果,也稱變量參數(shù)。
2024/2/767#include<stdio.h>viodswap1(inta,intb){intc;c=a;a=b;b=c;printf(“swap1中的a=%d,b=%d”,a,b);}viodswap2(int*a,int*b){intc;c=*a,*a=*b,*b=c;}關于參數(shù)傳遞示例源程序:2024/2/768voidmain(){intx=100,y=800;swap1(x,y);/*調(diào)用函數(shù)swap1()*/printf(“\n調(diào)用swap1后x=%d,y=%d”,x,y);/*輸出調(diào)用swap1后的數(shù)據(jù)*/x=100;y=800;swap2(&x,&y);/*調(diào)用函數(shù)swap2()*/printf(“\n調(diào)用swap2后x=%d,y=%d”,x,y);/*輸出調(diào)用swap2后的數(shù)據(jù)*/}關于參數(shù)傳遞示例源程序:2024/2/7694.函數(shù)結果的帶出方式
1.6.4算法描述規(guī)范與設計風格
三種帶出方式:全程量、函數(shù)返回值、傳址參數(shù)若函數(shù)結果需要帶出多個值,該怎樣實現(xiàn)?可以采用①全局變量方式帶出,②通過地址傳遞帶出(數(shù)組方式、結構體方式、指針方式)兩類方式之一來實現(xiàn)。
通過參數(shù)表的參數(shù)傳遞是一種參數(shù)顯式傳遞方式,而通過全局變量是一種隱式參數(shù)傳遞,一個函數(shù)中對全局變量的改變會影響其它程序的調(diào)用,使用全局變量必須注意這個問題。
2024/2/770①全局變量方式:intMIN;/*全局變量*/
intfun1(inta[],intn)/*通過函數(shù)return返回最大值,通過全局變量MIN帶回最小值*/{ inti,max;max=MIN=a[0];//給最大值最小值賦初值
for(i=0;i<n;i++){if(a[i]>max)max=a[i];if(a[i]<MIN)MIN=a[i];}return(max);}一個全局變量方式帶出的例子
2024/2/771int*fun2(inta[],intn)/*將最大、最小值放到數(shù)組b中,通過return返回*/{ staticintb[2];b[0]=b[1]=a[0];//給最大值最小值賦初值
inti;for(i=1;i<n;i++){ if(a[i]>b[0]) b[0]=a[i]; if(a[i]<b[1]) b[1]=a[i];}return(b);}數(shù)組方式帶出的例子2024/2/772Data*fun3(inta[],intn)/*將最大、最小值放到結構體指針p中,通過return返回*/{ Data*p; inti; p=(Data*)malloc(sizeof(Data*));//指針初始化
p->max=p->min=a[0];//給最大值最小值賦初值
for(i=1;i<n;i++) { if(a[i]>p->max)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合模機項目安全風險評價報告
- 無源液封水表行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 大學護理畢業(yè)生自我鑒定5篇
- 關于幼師自我鑒定模板錦集9篇
- 私人借款協(xié)議書
- 綜合執(zhí)法網(wǎng)絡課程設計
- 測量專業(yè)實習報告范文七篇
- 艱苦的軍訓心得體會600字
- 旅游管理實習心得體會8篇
- 文員類實習報告模板集合六篇
- 2023年鞍山市海城市教育局畢業(yè)生招聘筆試真題
- 遼寧省撫順縣2024-2025學年九年級上學期期末物理試卷(含答案)
- 2023-2024人教版上學期小學英語三年級上冊期末試卷
- 冬季施工階段安全事故案例分析及對策
- 2012生物化學答疑-02
- 公墓項目建議書
- 高壓氧艙技術要求
- 《怪老頭兒》閱讀測試及答案
- 螺栓對應重量表
- 施工現(xiàn)場消防安全操作規(guī)程
- A4標簽打印模板
評論
0/150
提交評論