課程實訓指導
8.1 知識要點
1、總體要求
熟練掌握一維陣列的定義、賦值、輸出等基本操作。;
熟練掌握掌用的演算法,如氣泡排序、選擇排序、折半查詢等演算法;
2、具體要求
(a) 具體要求1
陣列的概念:陣列是相同型別資料的有序集合。
特點: 陣列的長度確定性;
元素相同型別性。
陣列名是陣列的首位址。
定義一維陣列的引用:
注意以下兩種情況:
(b)具體要求2
冒泡演算法
演算法思想:每一次排序過程,通過相鄰元素的交換,將當前沒有排好序中的最大(小)移到陣列的最右(左)端。
氣泡排序的過程(以對陣列a[5]=從小到大進行排序為例)
選擇排序演算法。
演算法思想:每一次排序過程,獲取當前沒有排好序中的最大(小)的元素和陣列最右(左)端的元素交換,迴圈這個過程即可實現對整個陣列排序。
選擇排序的過程(以對陣列a[5]=從小到大進行排序為例)
第一輪:從a[1] 到a[4]中找到值最小的數,然後把這個數與a[0]交換,這樣最小的數就放到了a[0]位置。
第二輪:從a[2]到a[3]中找到值最小的數,然後把這個數與a[1]交換,這樣次小的數就放到了a[1]位置。
第三輪:從a[3]到a[4]中找到值最小的數,然後把這個數與a[2]交換,這樣次小的數就放到了a[2]位置。
第四輪:從a[4]到a[4]中找到值最小的數,然後把這個數與a[3]交換,這樣次小的數就放到了a[3]位置。
折半查詢演算法(適用於已經排好序的陣列)。
演算法思想:將需要查詢的數與中指標比較,如果被查數大,則將頭指標移到目前中指標,向後折半,繼續迴圈;如果被查數小,則將尾指標移到目前中指標,向前折半,繼續迴圈;如果被查數與中指標相等,則找到,輸出並跳出迴圈;如果找不到,則頭會到尾的後面,所以迴圈的條件是頭<=尾。
8.2 基礎技能訓練
1、下面的程式完成如下功能:乙個班級有10名同學,統計這10名同學的數學成績平均分(成績有鍵盤錄入)
2、下面的程式完成如下功能:乙個班級有10名同學,統計這10名同學的數學成績平均分(成績有鍵盤錄入)
請仔細閱讀程式,找出程式中的錯誤並改正,該程式中共有1個錯誤,該錯誤為語法錯誤。
3、下面的程式完成如下功能::乙個班級有10名同學,統計這10名同學的數學成績的最高分和最低分
請仔細閱讀程式,找出程式中的錯誤並改正,該程式中共有2個錯誤,其中乙個為語法錯誤;乙個為邏輯錯誤。
5、程式設計實現:將陣列a[5]=從小到大進行排序。
要求:使用兩種演算法分別實現以上要求。(氣泡排序、選擇排序)
6、程式設計實現:在陣列a[5]=中找到88所在的位置
要求:從順序查詢、折半查詢演算法中任選一種,程式設計實現以上功能。
8.3 拓展訓練
1、掌握以下常用的演算法:
1)氣泡排序法
2)選擇排序法
3)折半查詢
2、掌握一維陣列的用法。
8.4 作業及要求
1、fibonacci數列 ,f1=1,f2=1,fn=fn-1+fn-2(n>=3)
輸出fibonacci數列的前40項。
提示:定義乙個陣列儲存fibonacci數列 ,迴圈賦初值,然後迴圈輸出25分)
2、從鍵盤接受10個學生的英語成績,並使用氣泡排序從高到低進行排序25分)
3、程式設計實現將陣列a[8]=迴圈右移一位,並輸出25分)
4、程式設計實現從陣列a[8]=刪除下標為3的元素,並輸出刪除後的陣列。 (25分)
C語言實訓指導第6講
課程實訓指導 6 1 知識要點 1 break 用於跳出switch語句或迴圈語句 只能跳出其所在的那一層迴圈 2 continue 結束本次迴圈,跳過迴圈體中剩餘的語句,直接執行下1次迴圈。2 break continue 語句的區別 break是結束所有迴圈,跳出到迴圈體的外面 continue...
C語言實訓報告
程式清單 include include include int a 錄入的人數 int j 新增的人數 int pxh 按學號排序 int cj 按成績排序 int cxh 按學號查詢 int nam 按姓名查詢 struct student struct student stu 排序時用到的中間...
C語言實訓報告
hunan university 程式設計訓練 報告 學生姓名黃文倩 學生學號201435010117 專業班級計科1402 指導老師尹庚 2015 年 9 月 6 日 目錄題1 字母排列 id 1013 2 一 問題描述 2 二 問題分析 2 三 演算法分析 2 四 詳細設計 從演算法到程式 2 ...