第七章實驗報告

2022-09-03 18:06:12 字數 4166 閱讀 6983

7.3.1.1、寫乙個函式,對用隨機的函式產生的10個整數按從小到大的順序排序(公升序,用氣泡排序法實現)

7.3.1.2、寫乙個函式,對隨機產生的10個整數按從小到大的順序排序(公升序,用選擇排序法實現)

7.3.2.1、輸出指定行數的楊輝三角

7.3.2.2、給定某年某月某日,將其裝換成這一年的第幾天並輸出

7.3.3.、編寫程式,判斷某一字串是不是「回文數」,回文數是從左至右或者從右至左讀起來都是一樣的字串

● 定義乙個一維整型陣列,其大小為10,即它能存放10個資料

● 使用迴圈語句,利用隨機函式產生10個整數存放在陣列中。

● 編寫排序函式sort1()

●使用迴圈語句,將排好序的10個數依次輸出

●將陣列定義為全域性陣列或區域性陣列

●在主函式中,用隨機函式生成10個元素放入陣列中

●將sort(1)函式部分放入主函式中

● 定義乙個一維整型陣列,其大小為10,即它能存放10個資料

● 使用迴圈語句,利用隨機函式產生10個整數存放在陣列中。

● 編寫排序函式sort1()

●使用迴圈語句,將排好序的10個數依次輸出

●將陣列定義為全域性陣列或區域性陣列

●在主函式中,用隨機函式生成10個元素放入陣列中

●將sort(1)函式部分放入主函式中

● 怎樣定義和使用二維陣列

●怎樣用迴圈進行二維陣列中值的計算

●使用迴圈依次輸出二維陣列中的元素(注意換行)

●用if語句根據條件判斷某個字元是否是大寫字母

● 使用scanf()函式輸入年、月、日

●使用乙個二維陣列存放閏年和非閏年的每個月的天數

●使用邏輯表示式判斷某年是否是閏年

●使用變數day對前幾個月的天數進行累加

●在強化練習中,學生將練習不使用二維陣列存放每個月的天數

●使用if語句對年、月、日的正確性進行驗證

●將存放每個月的天數的二維陣列說明為區域性陣列

● 用scanf()函式,從鍵盤輸入乙個字串存入字元陣列中

●求出該字串的長度

●用for迴圈依次比較,迴圈的終值為長度的一半

●設定乙個標誌符ch,初值為『y』,若某字元對不相等,將其設定為『n』

●根據ch是『y』還是『n』,輸出該字串是否是回文數

●強化練習中不使用strlen()求出字串的長度

●將求回文數的部分獨立出來,編成乙個函式

編寫程式,利用隨機函式產生10個隨機數,按公升序排列輸出。

a、主要的問題:首先這個程式的最主要的問題是函式的呼叫問題。

解決方法:該程式的乙個核心演算法就是氣泡排序法,它是通過選取兩個數進行比較以及數之間換位置來進行排序,而兩數之間的數值交換是引入第三變數,該演算法大概就是這樣。

還有就是對於引數的定義,例如形參int s[ ],當我後面在用時應該用a[ ],而不是s,否則不會對這10個數進行排列。

b、程式執行如下:

編寫函式,利用隨機函式產生10個隨機數,按公升序排列輸出.

a、這個程式中的main函式和上面的那個程式中的一樣,主要是它的排序方法變了,使用的是選擇排序法,主要按照流程圖來,並不是很難。

b、程式執行如下:

編寫程式,從鍵盤輸入行數,輸出指定行數的楊輝三角形。

#include"

stdio.h

"main()

for(i=3;i<=n;i++)

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

printf("\n

");}

a、主要的問題:怎麼樣將數字能夠按照書上這麼排列

解決方法:該程式用了兩個巢狀的for迴圈,其中的第乙個和最後乙個是輸入和輸出陣列,而其中最核心的算就是 a[i][j]=a[i-1][j-1]+a[i-1][j],其意義就是下一專案是上面兩項的和,讓後在用換行就行

b、程式執行如下:

編寫程式,從鍵盤分別輸入年,月,日。計算出該天是這年中的第幾天。

a、這個程式是但是問題最大的乙個題目了,首先是不知道書上提示的統計函式的頭部怎麼編寫,這個問題是通過看書上的內容自行解決,也就是最year,month,day進行整形就行,應為這幾個變數都只能是整數。第二個問題就是執行的結果一直都是347天,而正確的答案是346天,這個問題是通過老師的幫助完成的,老師讓我輸出一下 i 的值,結果 i 的值一直都是1,而其應該是0,所以這才是錯誤的根源。而我這個程式的最大的問題就是搞清楚if中的判斷條件,不應該用i,而是用year,通過year來判斷 i 的取值。

b、程式執行如下:

編寫 程式,從鍵盤輸入乙個字串,判斷其是否為回文數。

#include"

stdio.h

"#include

"string.h

"#define n 40main()

}if(ch=='y'

) printf(

"%s是乙個回文數\n

",str);

else

printf(

"該字串不是回文數

");

}

a、這個程式最大的問題就是理解這個演算法,以及我一直出錯的地方,if中的判斷語句。其實很多時候都是應為這種小的問題,而導致整個程式無法執行。回文數從左至右和從右至左一致,所以只需判斷前一半與後一半對應數是否一致,所以無需判斷所有的字元。

b、程式執行如下:

這次實驗課總共完成了5個實驗,我覺得這次的幾個實驗都比較有難度。這是我在這次實驗課上的收穫:1、#include "stdio.h",這種形式用於引用使用者標頭檔案。它在包含當前檔案的目錄中搜尋名為 stdio 的檔案,而其就是乙個輸入和輸出函式。2、選擇排序法和氣泡排序法的異同點,相同點:¹都是通過n-1組排出具有n個數的順序  ²都是通過逐個比較,調整位置。不同點:氣泡排序法是最值在其中和其他值交換。選擇排序法確是假定乙個最值,所以最值和其他值得交換就發生在假定最值得地方。3、rand()函式的作用是隨機產生數,而其最大的缺陷就是會產生重複的隨機數,在rand函式後面加上%100的意思就是100以內的隨機數。4、%md指的是以寬度m輸出整數,資料寬度不足m時,左補空格。楊輝三角之間的空格就可以用%5d來實現。

第七章陣列實驗報告

c程式實驗報告 實驗專案 1 寫乙個函式,對用隨機函式產生的10個整數按從小到大的順序排序 公升序,氣泡排序實現 2 寫乙個函式,對用隨機函式產生的10個整數按從小到大的順序排序 公升序,用選擇排序實現 3 輸出指定行數的楊輝三角形 4 給定某年某月某日,將其轉換成這一年的第幾天並輸出 5 編寫程式...

第七章陣列實驗報告

c程式實驗報告 實驗專案 1 寫乙個函式,對用隨機函式產生的10個整數按從小到大的順序排序 公升序,氣泡排序實現 2 寫乙個函式,對用隨機函式產生的10個整數按從小到大的順序排序 公升序,用選擇排序實現 3 輸出指定行數的楊輝三角形 4 給定某年某月某日,將其轉換成這一年的第幾天並輸出 5 編寫程式...

第七章 陣列實驗

1 寫乙個函式,對用隨機函式產生的10個整數按從小到大的順序排序 公升序,氣泡排序實現 2 寫乙個函式,對用隨機函式產生的10個整數按從小到大的順序排序 公升序,用選擇排序實現 3 輸出指定行數的楊輝三角形 4 給定某年某月某日,將其轉換成這一年的第幾天並輸出 5 編寫程式,判斷某一字元是不是 回文...