C語(yǔ)言程序設計實(shí)驗報告
實(shí)驗名稱(chēng) 計算出1000以?xún)?0個(gè)最大素數之和
實(shí)驗目的
1、熟練掌握if、if…else、if…else if語(yǔ)句和witch語(yǔ)句格式及使用方法,掌握if語(yǔ)句中的嵌套關(guān)系和匹配原則,利用if語(yǔ)句和switch語(yǔ)句實(shí)現分支選擇結構。
2、熟練掌握while語(yǔ)句、do…while語(yǔ)句和for語(yǔ)句格式及使用方法,掌握三種循環(huán)控制語(yǔ)句的循環(huán)過(guò)程以及循環(huán)結構的嵌套,利用循環(huán)語(yǔ)句實(shí)現循環(huán)結構。
3、掌握簡(jiǎn)單、常用的算法,并在編程過(guò)程中體驗各種算法的編程技巧。進(jìn)一步學(xué)習調試程序,掌握語(yǔ)法錯誤和邏輯錯誤的檢查方法。
實(shí)驗內容
計算并輸出1000以?xún)茸畲蟮?0個(gè)素數以及它們的和。
要求:
在程序內部加必要的注釋。
由于偶數不是素數,可以不考慮對偶數的處理。
雖然在1000以?xún)鹊乃財党^(guò)10個(gè),但是要對1000以?xún)炔粔?0個(gè)素數的`情況進(jìn)行處理。
輸出形式為:素數1+素數2+素數3+…+素數10=總和值。
算法描述流程圖
Main函數:
判斷素數:
源程序
#include
#include
int sushu(int n)/* 判斷素數的函數 */
{
int t,i;
t=sqrt(n);
for(i=2;i<=t;i++)
if(n%i==0)/* 如果不是素數,返回 0 */
return 0;
return n;/* 如果是素數,返回該數 */
}
void main()
{
int i,j=0,n,m=0,a[1000],x;
/*clrscr();*/
printf("Please input a number form 1 to 1000:");
scanf("%d",&x);
if(x==2)/* x=2時(shí)的處理 */
printf("%d\n",x);
else if(x<=1) /* x在1~1000范圍外時(shí)的處理 */
printf("Error!\n");
else
{
if(x%2==0)/* x為偶數時(shí),把x變?yōu)槠鏀?*/
x--;
for(i=x;i>1;i-=2)/* x為奇數時(shí),做函數計算 */
{
n=sushu(i); /* 做判斷素數的函數調用 */
( 勵志天下 lizhi123.net )
if(n!=0)/* 對素數的處理 */
{
a[j]=n;/* 把素數由大至小存入數組a[ ]中 */
j++;
if(j<11)
m+=n; /* 統計前10個(gè)素數之和 */
}
}
if(j<10)/* 當素數個(gè)數小于10個(gè)時(shí),結果輸出 */
{
for(i=0;i
{
n=a[i];
printf("%d",n);
printf("+");
}
printf("2=");
printf("%d\n",m+2);
}
else for(i=0;i<10;i++)/* 當素數個(gè)數大于等于10個(gè)時(shí),結果輸出 */
{
n=a[i];
printf("%d",n);
if(i<9)
printf("+");
else
{
printf("=");
printf("%d\n",m);
}
}
}
}
測試數據
分別輸入1000、100、10測試。
運行結果
出現問(wèn)題及解決方法
當素數個(gè)數小于10時(shí)的處理不夠完善,考慮不夠周全。把“+2”的處理做的太勉強。
程序過(guò)大,不夠精簡(jiǎn),無(wú)用文字太多。
學(xué)習耐心與細心不足,如scanf(“%d”,&n);中的“&”經(jīng)常忘記。
編程思想不夠發(fā)散,例如如何判斷素數,只能想出2種方式(其中1種為參考教科書(shū)上內容);在今后學(xué)習中應更多的動(dòng)腦,綜合運用所學(xué)。
基本功不夠,如清屏clrscr()等函數用的不好,有時(shí)同樣的問(wèn)題多次犯,給實(shí)驗課老師帶來(lái)很大的麻煩。這說(shuō)明我的知識不夠廣,有很多有用但不做考試要求的書(shū)中內容沒(méi)有學(xué)好,認識程度不夠深刻。就算以后C語(yǔ)言這門(mén)課程結束后,也應多看相關(guān)東西,多上機練習,才能真正從本質(zhì)上提高自己。
物理實(shí)驗報告 ·化學(xué)實(shí)驗報告 ·生物實(shí)驗報告 ·實(shí)驗報告格式 ·實(shí)驗報告模板
知識不夠廣泛,如VC++6.0等程序,自己試了好一陣也不會(huì )用;說(shuō)明我電腦水平還是不夠,自學(xué)能力不夠。已會(huì )的東西掌握的還是不夠好。
學(xué)習?shū)B(niǎo)網(wǎng)站是免費的綜合學(xué)習網(wǎng)站,提供各行各業(yè)學(xué)習資料、學(xué)習資訊供大家學(xué)習參考,如學(xué)習資料/生活百科/各行業(yè)論文/中小學(xué)作文/實(shí)用范文實(shí)用文檔等等!
寫(xiě)作基礎 | 作文指導 |
寫(xiě)作經(jīng)驗 | 寫(xiě)作方法 |
文學(xué)常識 |
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:0.262秒