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 ...