今天分享本實驗的相關(guān)例題!
創(chuàng)新互聯(lián)是專業(yè)的開州網(wǎng)站建設(shè)公司,開州接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行開州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!1.編寫兩個函數(shù),分別求兩個數(shù)的大公約數(shù)和最小公倍數(shù),在主函數(shù)中從鍵盤輸入兩個整數(shù),并調(diào)用這兩個函數(shù),最后輸出相應(yīng)的結(jié)果。
此處提供經(jīng)典的兩種方法
(1)輾轉(zhuǎn)相除法:
設(shè)開始大數(shù)為u小數(shù)為v,當(dāng)v不為0時輾轉(zhuǎn)用操作
r=u%v,u=v,v=r消去相同的因子,直到v為0時u中的值既是所求的解。
#includeint main()
{
int u = 0, v = 0;
int r = 0;
printf("請輸入大數(shù):");
scanf_s("%d", &u);
printf("請輸入小數(shù):");
scanf_s("%d", &v);
while ((r = u % v) != 0)
{
u = v;
v = r;
}
printf("大公約數(shù)為%d\n", v);
return 0;
}
(2)測試法:
設(shè)大數(shù)為u小數(shù)為v,循環(huán)變量從v開始每次減1,測試是否能整除兩個數(shù),直到能整除或循環(huán)變量為1時退出,退出時循環(huán)變量的值既是所求的解。
此方法適合不擅長輾轉(zhuǎn)相除法的算法的同學(xué)使用。另一方面,測試法也恰能反映出大公約數(shù)的求法的基本原理。
#includeint main()
{
int maximum(int m, int n);
int minimum(int m, int n);
int m, n = 0, i, j;
printf("請輸入第一個數(shù):");
scanf_s("%d", &m);
printf("請輸入第二個數(shù):");
scanf_s("%d", &n);
printf("其兩個數(shù)的大公因數(shù)是%d\n\n", maximum(m,n));
printf("其兩個數(shù)的最小公約數(shù)是%d\n\n", minimum(m,n));
return 0;
}
int maximum(int m, int n)
{
int i;
for (i = m; i >= 1; i--)
if (m % i == 0 && n % i == 0)
break;
return(i);
}
同學(xué)們可以將輾轉(zhuǎn)相除法寫入另外一個新函數(shù)中,體現(xiàn)模塊化程序設(shè)計。
2.設(shè)計一個程序,輸入一個給定的范圍,輸出該范圍內(nèi)本身是素數(shù),反序后仍然是素數(shù)的所有素數(shù)(如107是素數(shù),反序后的數(shù)701也是素數(shù))。
詳見鏈接:(c語言)設(shè)計一個程序,輸入一個給定的范圍,輸出該范圍內(nèi)本身是素數(shù),反序后仍然是素數(shù)的所有素數(shù)_善寄雞屑攻城獅的博客-博客
3.用遞歸函數(shù)實現(xiàn)將一個正整數(shù)反序。
要求:反序函數(shù)的返回值是反序后的數(shù);
提示:該遞歸函數(shù)需要兩個參數(shù),一個是已反序的部分(開始為0),另一個是待反序部分(開始為要反序的數(shù))。
#include#includeint reverse(int l, int n)
{
long int i;
long p = 0;
if (l == 0)
p = 0;
else
{
i = pow(10, l - 1);
p = reverse(--l, n % i) * 10 + n / i;
}
return p;
}
void main()
{
int reverse(int l, int n);
long int i, j = 0, m;
printf("請輸入需要反轉(zhuǎn)的正整數(shù):");
scanf_s("%ld", &m);
i = m;
do {
i = i / 10;
j++;
} while (i != 0);
printf("%ld的反序正整數(shù)為:%ld", m, reverse(j, m));
}
相關(guān)算法和第二道題類似。以供參考。
4.編寫一個字符統(tǒng)計函數(shù)count
要求:調(diào)用時由實參傳遞一個字符串,在函數(shù)中統(tǒng)計該字符串中字母、數(shù)字、空格和其它字符的個數(shù),函數(shù)的返回值是字符串的長度。函數(shù)的原型如下:
int count( char s[]);
在主函數(shù)中存放和輸入一個字符串,調(diào)用count函數(shù)后在主函數(shù)中輸出字符串長度和各類字符統(tǒng)計的結(jié)果。
#includeint letters = 0, space = 0, digit = 0, others = 0;
int main()
{
void count(char a[]);
char a[80];
printf("請輸入你的字符串:\n");
gets(a);
count(a);
printf("char=%d,space=%d,digit=%d,others=%d", letters, space, digit, others);
return 0;
}
void count(char a[])
{
int i;
for (i = 0; a[i]; i++)
{
if (a[i] >= '0' && a[i]<= '9')digit++;
else if (a[i] == ' ')space++;
else if (a[i] >= 'a' && a[i]<= 'z' || a[i] >= 'A' && a[i]<= 'Z')letters++;
else others++;
}
}
合理利用asc碼。如果能用指針,可以擴展此程序的性能和功能!
今天分享到此結(jié)束,感謝同學(xué)們的觀看與點贊收藏。
若有技術(shù)問題,歡迎各位的建議與指正!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:(c語言)實驗6:函數(shù)程序設(shè)計STU例題-創(chuàng)新互聯(lián)
標(biāo)題URL:http://aaarwkj.com/article20/ccojco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站策劃、網(wǎng)站導(dǎo)航、網(wǎng)頁設(shè)計公司、網(wǎng)站設(shè)計公司、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容