使用C語言循環(huán)結(jié)構(gòu)進行程序設(shè)計實驗
一、實驗?zāi)康?. 熟練掌握while和for循環(huán)結(jié)構(gòu)以及實現(xiàn)循環(huán)的方法;2. 掌握在程序設(shè)計中使用循環(huán)的方法實現(xiàn)各種算法(如窮舉、迭代、遞推等)。二、知識要點在C語言的程序設(shè)計中,有很多問題需要對同一
一、實驗?zāi)康?/p>
1. 熟練掌握while和for循環(huán)結(jié)構(gòu)以及實現(xiàn)循環(huán)的方法;
2. 掌握在程序設(shè)計中使用循環(huán)的方法實現(xiàn)各種算法(如窮舉、迭代、遞推等)。
二、知識要點
在C語言的程序設(shè)計中,有很多問題需要對同一問題進行反復(fù)求解,循環(huán)結(jié)構(gòu)的程序可以實現(xiàn)此類功能。在C語言中,主要有兩類循環(huán):一是當(dāng)型循環(huán),另一種是直到型循環(huán),后一種較少使用。從語句的角度來說,主要有Do{ }while和While(條件表達式){ }以及for(條件表達式1;判斷;表達式){ }。
三、實驗內(nèi)容及步驟
1. 編寫一個控制臺應(yīng)用程序,輸入一個數(shù),判斷是否為素數(shù)。
代碼如下:
includelt;iostreamgt;
using namespace std;
includelt;math.hgt;
void f(int n)
{
int i,j0;
for(i2;ilt;sqrt(n);i )
if(n%i0)
j ;
if(n0||nlt;0)
coutlt;lt;quot;數(shù)據(jù)錯誤!quot;lt;lt;quot;aquot;lt;lt;endl;
else if(n1)
coutlt;lt;quot;這個數(shù)不是素數(shù)。quot;lt;lt;endl;
//“1”要特殊處理。
else
{
if(j0)
coutlt;lt;quot;這個數(shù)是素數(shù)。quot;lt;lt;endl;
else
coutlt;lt;quot;這個數(shù)不是素數(shù)。quot;lt;lt;endl;
}
}
int main()
{
int n;
coutlt;lt;quot;請輸入要檢驗的整數(shù):quot;lt;lt;endl;
cingt;gt;n;
f(n);
return 0;
}
運行結(jié)果如下:
2. 根據(jù)上面的代碼,輸出100-200之間的所有素數(shù)。
代碼如下:
includelt;iostreamgt;
includelt;cmathgt;
includelt;iomanipgt;
using namespace std;
int main()
{
int m,k,i,n0;
bool prime;
for(m101;mlt;200;mm 2)
{
primetrue;
kint(sqrt(m));
for(i2;ilt;k;i )
if(m%i0)
{
primefalse;
break;
}
if(prime)
{
coutlt;lt;setw(5)lt;lt;m;
nn 1;
}
if(n0)
coutlt;lt;endl;
}
coutlt;lt;endl;
return 0;
}
運行結(jié)果如下:
3. 編寫一個程序,計算100!,并討論使用什么數(shù)據(jù)類型來存儲。
代碼如下:
includelt;iostreamgt;
using namespace std;
long float fac(int n)
{
long float f;
if(nlt;0)
{
coutlt;lt;nlt;lt;quot;,data error!quot;lt;lt;endl;
f-1;
}
else if(n0||n1)
f1;
else
ffac(n-1)*n;
return f;
}
int main()
{
int n;
long float y;
coutlt;lt;quot;please input a data:quot;;;
cingt;gt;n;
yfac(n);
coutlt;lt;nlt;lt;quot;!quot;lt;lt;ylt;lt;endl;
return 0;
}
由于100!的計算結(jié)果非常大,因此我們需要使用長浮點型數(shù)據(jù)類型來存儲。
新C語言循環(huán)結(jié)構(gòu)程序設(shè)計實驗及示例