《C程式設計快速高階大學教程》第8章程式設計題

2021-08-30 15:32:19 字數 3381 閱讀 3383

關於階乘的數值問題,嘗試用各種迴圈語句實現:

(1)編寫程式求n階乘。輸入乙個正整數n,輸出其階乘 的值。

(2)編寫程式求階乘和。對於乙個正整數m,輸出1~m的階乘和 。

(3)編寫程式求常量e的近似值,估算公式如下:

(4)編寫程式計算的 值,公式如下:

#include #include #include //輸入乙個正整數n,輸出其階乘的值。

int factorial(int n)

return fac;

}//求階乘和

int factorial_sum(int n)

return fac_sum;

}//求常量e的近似值

float ee(int n)

return e;

}//計算的e^x值

float eex(double x,int n)

return ex;

}int main()

case 2:

case 3:

case 4:

default:

printf("輸入錯誤");

#include #include //方法1

float pi_1()

return 4*pi_4;

}//方法2

double pi_2()

return 2*pi_2;

}int main()

case 2:

default:

printf("輸入錯誤\n");

break;

}return 0;

}

分別用窮舉法和迭代法求兩個整數的最大公約數。輸入兩個正整數m和n,程式設計求它們的最大公約數。

最簡單的求最大公約數演算法為遍曆法,即在小於兩數最小值的所有整數中尋找公約數,能將兩數整除的最大因子為最大公約數。為了加快搜尋速度,常採用輾轉相除法求最大公約數: m 與 n 的最大公約數等於 n 與 m%n 的最大公約數;用n和m%n替換原來的 m與n的值;直到n = 0時,當前 m的值為所求最大公約數。

例如,m = 24,n = 9時:

(1)24和 9 的最大公約數等於 ( 24 % 9 ) = 6 和 9 的最大公約數;

(2)9 和 6 的最大公約數等於 ( 9 % 6 ) = 3 和 6 的最大公約數;

(3)6 和 3 的最大公約數等於 ( 6 % 3 ) = 0 和 3 的最大公約數;

因此 24 和 9 的最大公約數等於 3。

#include #include //窮舉法maximum common divisor

int mcd_1(int m,int n)

}return i;

}//迭代法

int mcd_2(int m,int n)

return n;

}int main()

else if(m == n)

printf("請輸入選擇的操作:1,窮舉法;2,迭代法\n");

int sel;

scanf("%d",&sel);

switch(sel)

case 2:

default :

}return 0;

}

菲波那契在數學代表作《算盤書》提出了這樣的問題:有小兔一對,若在它們出生後第二個月成年,第三個月就有生殖能力,而有生殖能力的一對兔子每乙個月都生一對兔子。設所生的一對兔均為一雌一雄,且均無死亡。問新生的一對兔子一年後可以繁殖成多少對兔子?該問題可以用菲波那契數列解決。

fibonacci 數列:0,1,1,2,3,5,8,13,21,34,……

f0 = 0

f1 = 1

fn = fn-1 + fn-2 ( n >= 2 )

用迭代的方法輸出數列的前20項,每行輸出8個數。

#include #include int main()

else if(i==2)else

if(i%8 == 0)

i++;

}return 0;

}

5.螢幕列印圖中的三角形圖案.

圖8.13 輸出三角形

#include #include int main()

printf("\n");

}break;

}case 'b':

printf("\n");

}break;

}case 'c':

for(j=i;j>=1;j--)

printf("\n");

}break;

}case 'd':

for(j=1;j<=i;j++)

printf("\n");

}break;

}default :

}return 0;

}

6.程式設計判斷乙個數是否為素數,輸出n~m內的所有素數,並統計素數的個數。

#include #include //判斷乙個數是不是素數

int sushu(int n);

int count=0;

while(n != 0)

int i;

int sum=0;

for(i=count-1;i>0;i--)

printf("%d",a[0]);

sum += a[0];

printf("=%d",sum);

return 0;

}

9[選作].程式設計實現猜數遊戲

由程式自動生成乙個1到10之間隨機整數,請參加遊戲的人猜,遊戲者通過鍵盤輸入猜測的數字,如果猜對了則結束遊戲;否則輸出提示資訊,顯示所猜的數是太大還是太小。 遊戲結束後輸出猜字的次數。 若規定輸入猜測字的次數不得超過6次,若多於6次仍未猜中則自動結束遊戲,並輸出「輸局」的資訊。如果在遊戲過程中,玩家可以隨時終止遊戲,在提示玩家繼續輸入新的猜測數時,可由使用者選擇是否繼續進行遊戲。

#include #include int main()

else if(guess < rn && guess>=1)else if(guess > rn)else if(guess == -1)

}if(count > 6 && flag == 0)

return 0;

}

《C程式設計快速高階大學教程》第五章程式題

1 編寫程式求三個整型數的和 積和平均值,輸入三個數的值,輸出結果。include include int main 2 編寫程式求圓柱體底面周長 圓柱體的表面積和體體積。要求輸入圓柱的底面直徑和高,輸出計算結果,取小數點後2位數字,輸入輸出時要求有文字說明。include include defi...

第8章 C 函式的高階特性

一 函式過載的概念 1 同名函式,引數不同 包括型別 順序不同 2 全域性函式和類的成員函式同名不算過載,因為函式的作用域不同 全域性函式被調時應加 標誌 二 成員函式的過載 覆蓋與隱藏 1 成員函式被過載的特徵 a 相同的範圍 在同乙個類中 b 函式名字相同 c 引數不同 d virtual關鍵字...

筆記 《C 大學教程》 第12章 GUI(二)

1.選單欄 3.列表和複選列表 新增和移除 listbox.items.add item listbox.items.remove item 4.下拉選擇 combobox 1 首先建立圖集,選擇imagelist,在list中新增,之後將listview的smalliamgelist屬性設定為建立...