C語言程序設計實驗報告

實驗名稱 計算出1000以內10個素數之和

C語言程序設計實驗報告

實驗目的

1、熟練掌握if、if…else、if…else if語句和witch語句格式及使用方法,掌握if語句中的嵌套關係和匹配原則,利用if語句和switch語句實現分支選擇結構。

2、熟練掌握while語句、do…while語句和for語句格式及使用方法,掌握三種循環控制語句的循環過程以及循環結構的嵌套,利用循環語句實現循環結構。

3、掌握簡單、常用的算法,並在編程過程中體驗各種算法的編程技巧。進一步學習調試程序,掌握語法錯誤和邏輯錯誤的檢查方法。

實驗內容

計算並輸出1000以內的10個素數以及它們的和。

要求:

在程序內部加必要的註釋。

由於偶數不是素數,可以不考慮對偶數的處理。

雖然在1000以內的素數超過10個,但是要對1000以內不夠10個素數的情況進行處理。

輸出形式為:素數1+素數2+素數3+…+素數10=總和值。

算法描述流程圖

Main函數:

判斷素數:

源程序

#include

#include

int sushu(int n)/* 判斷素數的函數 */

{

int t,i;

t=sqrt(n);

for(i=2;i1;i-=2)/* x為奇數時,做函數計算 */

{

n=sushu(i); /* 做判斷素數的函數調用 */

( 勵志天下 )

if(n!=0)/* 對素數的處理 */

{

a[j]=n;/* 把素數由大至小存入數組a[ ]中 */

j++;

if(j<11)

m+=n;

 /* 統計前10個素數之和 */

}

}

if(j<10)/* 當素數個數小於10個時,結果輸出 */

{

for(i=0;i

{

n=a[i];

printf("%d",n);

printf("+");

}

printf("2=");

printf("%dn",m+2);

}

else for(i=0;i<10;i++)/* 當素數個數大於等於10個時,結果輸出 */

{

n=a[i];

printf("%d",n);

if(i<9)

printf("+");

else

{

printf("=");

printf("%dn",m);

}

}

}

}

測試數據

分別輸入1000、100、10測試。

運行結果

出現問題及解決方法

當素數個數小於10時的處理不夠完善,考慮不夠周全。把“+2”的處理做的太勉強。

程序過大,不夠精簡,無用文字太多。

學習耐心與細心不足,如scanf(“%d”,&n);中的“&”經常忘記。

編程思想不夠發散,例如如何判斷素數,只能想出2種方式(其中1種為參考教科書上內容);在今後學習中應更多的動腦,綜合運用所學。

基本功不夠,如清屏clrscr等函數用的不好,有時同樣的問題多次犯,給實驗課老師帶來很大的麻煩。這説明我的知識不夠廣,有很多有用但不做考試要求的書中內容沒有學好,認識程度不夠深刻。就算以後C語言這門課程結束後,也應多看相關東西,多上機練習,才能真正從本質上提高自己。

物理實驗報告 ·化學實驗報告 ·生物實驗報告 ·實驗報告格式 ·實驗報告模板

知識不夠廣泛,如VC++6.0等程序,自己試了好一陣也不會用;説明我電腦水平還是不夠,自學能力不夠。已會的東西掌握的還是不夠好。