C語言日常練習(二)

2021-10-01 05:51:37 字數 2315 閱讀 9716

1、將乙個正整數分解質因數。例如:輸入90,列印出90=233*5。

思考:假設輸入乙個數n,先找到n以內所有的質數,2、3、5、7……用n最小的質數存在兩種情況:

一》可以整除

那麼這個質數就是n的乙個質因數,記作i,用 n / i 作為新的 n 的值,重複之前過程

二》不能整除

用下乙個質數再次嘗試,此時,又有兩種情況:

1>如果最後找到的質因數就是n本身,則說明過程結束

2>如果不是n本身,回到 一》

void

fun(

int a)

//這裡我定義了乙個函式,使用時在主函式中呼叫,並傳參進去即可

//這裡是在尋找n以內的最小質數

if(i == j)

else

continue;}

}}

執行測試:

2、利用條件運算子的巢狀來完成此題:學習成績》=90分的同學用a表示,60-89分之間的用b表示,60分以下的用c表示。

注意:在使用時的格式為:

變數名 = 條件 ? 語句1 : 語句3;

條件為真時執行語句1,為假時執行語句2。

int

main

(void

)

執行測試:

3、求s=a+aa+aaa+aaaa+aa…a的值,其中a是乙個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。

思考:定義乙個函式計算a、aa、aaa、aaaa……

這是自定義的函式:

int

fun(

int a,

int n)

return a;

}

下面是主函式中呼叫情況:

int

main

(void

)printf

("%d"

, sum)

;printf

("\n\n");

system

("pause");

return0;

}

執行測試:

執行測試:

4、有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13…求出這個數列的前20項之和。

思考:單看分子和分母其實是乙個斐波拉契數列

用遞迴求出數列的某一項:

int

fun(

int n)

在主函式中呼叫即可,注意計算時需要強**

int

main

(void

)printf

("%lf "

, sum)

;printf

("\n\n");

system

("pause");

return0;

}

執行測試:

5、函式傳值與傳址測試

傳值不會影響外部引數的值,傳址則會映像

void

fun(

int a)

;void

_fun

(int

* p)

;int

main

(void

)void

fun(

int a)

void

_fun

(int

* p)

C語言日常練習題(一)

今日的程式設計練習題。1 列印100 200之間的素數。素數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。列印100 200之間的素數。素數 只能被一和其本身整除的數。include include intmain if j i printf d i system pause retu...

Python日常小練習(二)

用兩個字串,然後把它們連線到一起 name input 請輸入你想一起的那個人 country input 請輸入你想要去的那個國家 print 世界那麼大,我想要和 一起去 看看 format name,country 使用者輸入乙個整數n,計算從1到n的相加之後的結果 n int input 請...

C語言初級 練習(二)

6 第三大的數 給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o n 示例 1 輸入 3,2,1 輸出 1 解釋 第三大的數是 1.示例 2 輸入 1,2 輸出 2 解釋 第三大的數不存在,所以返回最大的數 2 示例 3 輸入 2,2,3,1 ...