實驗十二一維陣列

2023-01-06 08:54:03 字數 1785 閱讀 5205

1.熟練掌握使用一維陣列程式設計。

2.熟練掌握排序演算法。

12-1 除錯示例,輸入乙個正整數n(0源程式(有錯誤的程式)errora_

#include <>

void main( )

if(i == n) a[n]=x;

for(i = 0; i < n + 1; i++)

printf("%d ", a[i]);

putchar('\n

}執行結果(改正後程式的執行結果)

輸入資料的個數n:5

輸入5個整數:1 2 4 5 7

輸入要插入的整數:3

1 2 3 4 5 7

提示:先找到插入點,從插入點開始,所有的資料順序後移,然後插入資料;如果插入點在最後,則直接插入(說明插入的數排在該組資料中的最後)。

(1)輸入並儲存上述程式後,編譯程式,出現以下錯誤資訊:

expected constant expression

cannot allocate an array of constant size 0

'a' : unknown size

以上錯誤資訊指出:定義陣列a時,陣列長度必須是常量。程式中的陣列定義錯誤的用了a[n],改為a[10]後,重新編譯和連線,沒有出現錯誤資訊。

(2)除錯程式開始,設定2個斷點,具體位置見源程式的注釋。

(3)單擊(go),執行程式,依次輸入5和1 2 4 5 7,以及3,程式執行到第乙個斷點,在watch視窗觀察輸入的a陣列和插入的數x均正確,而且3 < 4(x(4)再單擊(go),程式執行到第二個斷點,在watch視窗觀察a[j]和a[j+1]的值均是乙個負數,這顯然不對。仔細分析,演算法要求陣列元素後移,而程式中a[j]=a[j+1]是前移,而且j++也同樣有問題,只要加一次,陣列下標就越界了。

(5)找出問題後,單擊(stop debugging )停止除錯,把a[j]=a[j+1]改為a[j+1]=a[j],j++改為j--後,重新編譯和連線,沒有錯誤和警告。

(5)單擊(rstart ),重新開始除錯,並取消第乙個斷點,單擊(go),程式執行到斷點,watch視窗顯示a[j]=5和a[j+1]=7,排列正確。

(6)再單擊(go),程式執行到斷點,觀察watch視窗中a[j]和a[j+1]的值均排列正確。

(7)單擊(step over)2次,程式跳出while迴圈,箭頭指向了要插入資料的語句。

(8)再單擊(step over),程式跳出for迴圈,在watch視窗觀察a陣列的元素排列正確。

(9)把游標放在最後一行,單擊(run to cursor),程式執行到最後,輸出1 2 3 4 5 7,執行結果正確。

(10)單擊(stop debugging (shaft f5)),程式除錯結束。

12-2 輸入1個正整數n (112-3 輸入1個正整數n (112-4 輸入1個正整數n (112-5 輸入1個正整數n (112-6 輸入1個正整數n (112-7 改錯,設a是乙個整型陣列,n和x都是整數,陣列a中各元素的值互異。在陣列a的元素中查詢與x相同的元素,如果找到輸出x在陣列a中的下標位置,如果沒有找到輸出「找不到與x相同的元素」。

輸入輸出示例:

輸入陣列元素的個數:5

輸入陣列5個元素:1 3 5 7 9

x = 5

和5相同的陣列元素是a[2] = 5

源程式(有錯誤的程式)errora_

#include <>

void main( )

將程式設計題(12-2~12-6)的程式流程圖、源程式、執行結果和改錯題(12-7)改正後的源程式、執行結果,以及實驗中遇到的問題和解決問題的方法,寫在實驗報告上。

實驗8二維陣列

一 實驗目的 1 掌握二維陣列的定義 賦值和輸入輸出方法 2 學會如何應用二維陣列解決問題 二 實驗內容 1 將兩個給定的距陣 3 3 相乘得到另乙個距陣並將其列印出來。其中提示 1 定義三個陣列a 3 3 b 3 3 c 3 3 先分別輸入a b兩個陣列的元素值。2 計算則應設計乙個三重巢狀迴圈,...

一維陣列上機練習

基本練習 採用檔案輸入輸出 1 輸入一串小寫字母 以 為結束標誌 統計出每個字母在該字串 現的次數 若某字母不出現,則不要輸出 例 輸入 aaaabbbccc.輸出 a 4 b 3c 3 規定 檔名 輸出檔案 輸出檔案 程式 var a array a z of integer n char beg...

二維陣列程式設計實驗報告

實驗報告 一 實驗目的 1 掌握二維陣列的定義 賦值 輸入和輸出及二維陣列元素的引用方法。2 掌握二維陣列的相關演算法 矩陣行列互換 矩陣中特定資料的查詢 3鞏固迴圈巢狀的使用。4 學習vc環境下除錯二維陣列程式的方法。二 實驗內容 1 輸入5 5的陣列,編寫程式實現 1 求出對角線上各元素的和 2...