實驗八迴圈結構程式設計 二

2022-05-02 05:24:02 字數 1525 閱讀 6033

1.熟練掌握迴圈程式設計,包括巢狀迴圈。

2.熟練掌握使用break、continue語句在迴圈程式設計中的實現。

3.繼續掌握vc++的程式除錯方法。

8-1除錯示例,輸入正整數的個數n,再輸入n個正整數,判斷它們是否為素數。素數就是只能被1和自身整除的正整數,1不是素數,2是素數。

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

#include <>

#include <>

void main( )

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

輸入正整數的個數n:3

輸入3個正整數

1111是乙個素數

1313是乙個素數

1515不是乙個素數

(1)輸入並儲存上述程式後,再進行編譯和連線,沒有出現錯誤資訊。

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

(3)單擊go (f5),執行程式,輸入1 和9,程式執行到斷點暫停,輸出9是素數,結果不對。在watch視窗的name欄分別輸入n、i、m,它們的值分別為3、4、9,這也是while迴圈結束時的值。從程式看,while迴圈有2個條件i <= n和m/i !

= 0,但是,當i<=n時,m/i == 0的值一直為假,即實際上只有乙個條件i <= n起作用,但那就無法區分m是否為素數。根據素數的定義,要判斷m能否被i整除,應該用m%i == 0表示,而不是程式中的m/i == 0。

(4)單擊(stop debugging (shaft f5))停止除錯,把 / 改為 % 後,重新編譯和連線,沒有錯誤和警告。

(5)單擊(rstart (ctrl+shaft+f5)),重新開始除錯。單擊go (f5),執行程式,輸入1 和9,程式執行到斷點暫停,輸出9不是素數,正確,單擊(stop debugging (shaft+f5))停止除錯。

(6)取消斷點,再單擊,執行程式,輸入3 和11 13 15,輸出結果和題目要求一致,程式除錯結束。

8-2 輸入1個正整數n,求下式的前n項之和(保留2位小數),要求使用巢狀迴圈。

8-3 輸入2個正整數a和n,求a+aa+aaa+aa…a(n個a)之和。例如,輸入2和3,輸出246(2 + 22 + 222)。

8-4 輸出100~200之間的所有素數,每行輸出8個。素數就是只能被1和自身整除的正整數,1不是素數,2是素數。

8-5 輸入2個正整數m和n(1<=m,n<=500),統計並輸出m 和n之間的素數的個數以及這些素數的和。要求定義並呼叫函式prime(m)判斷m是否為素數。

8-6 改錯,找出200以內的所有完數,並輸出其因子。乙個數如恰好等於它的因子之和,這個數稱為完數,如6=1+2+3,其中1、2、3為因子,6為因子和。(源程式error8_

輸入輸出示例:

1=16=1+2+3

28=1+2+4+7+14

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

#include ""

void main()

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

實驗迴圈結構程式設計

一 實驗目的 1 熟練掌握三種迴圈語句的應用。2.掌握break和continue語句的使用。3.熟練掌握迴圈結構的巢狀。4.掌握迴圈結構程式設計常用的演算法 例如一組資料求和 求平均值 求最大值最小值,判斷素數等。二 實驗內容 1 編寫乙個程式,其功能為 計算並輸出1 10的平方值。include...

上機實驗六迴圈結構程式設計二

for i 2 i sqrt n i if n i 0 break if i sqrt n return 1 n是素數,返回1 else return 0 若為假,n不是素數返回0 編譯 連線並執行該程式,結果顯示 問題1 輸出的第一行是否有5個式子?原因是什麼?只有3個,因為k是偶數,且取值從6開...

實驗三迴圈結構程式設計

一 實驗目的與要求 1 熟練掌握三種迴圈語句的應用。2 熟練掌握迴圈結構的巢狀。二 實驗內容 1 階乘問題 1 輸入n,求n的階乘n n 1 2 n 2 輸入n,求n的階乘和 1!2!n 2 水仙花數問題 1 輸出水仙花數及個數。2 輸入三位數m,n,輸出m n之間的水仙花數及個數,輸出的水仙花數要...