C语言经典例76-根据n的奇偶性累加
生活随笔
收集整理的這篇文章主要介紹了
C语言经典例76-根据n的奇偶性累加
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
- 1 題目
- 2 分析
- 3 實現(xiàn)
- 4 運行結(jié)果
1 題目
編寫一個函數(shù),輸入n為偶數(shù)時,調(diào)用函數(shù)求1/2+1/4+…+1/n,當(dāng)輸入n為奇數(shù)時,調(diào)用函數(shù)1/1+1/3+…+1/n(利用指針函數(shù))。
2 分析
首先判斷n的奇偶性,通過if控制語句對2取余來判斷,再根據(jù)n的奇偶性調(diào)用不同的計算方法,這里把兩個計算方法寫成兩個函數(shù),不難發(fā)現(xiàn)累加的規(guī)律為當(dāng)n為偶數(shù)時,所有累加項都是以1為分子,分母是從2開始的偶數(shù)序列;當(dāng)n為奇數(shù)時,所有累加項分子也是1,分母則是從1開始的奇數(shù)序列。
注:本題使用函數(shù)指針來實現(xiàn)。
3 實現(xiàn)
#include <stdio.h> #include <stdlib.h> double evenumber(int n); double oddnumber(int n);int main() {int n;double sum;double (*pfunc)(int); // 定義函數(shù)指針printf("請輸入n:");scanf("%d", &n);if (n % 2 == 0) { // 判斷奇偶pfunc = evenumber; // 偶數(shù)函數(shù)} else {pfunc = oddnumber; // 奇數(shù)函數(shù)} sum = (*pfunc)(n); // 通過指針調(diào)用函數(shù)printf("%lf\n", sum);return 0; }// 當(dāng)n為偶數(shù)時 double evenumber(int n) {double s = 0; // 累加和double a = 0; // 保存每一項的臨時變量for (int i = 2; i <= n; i += 2) {a = (double)1/i; // 該除法會出現(xiàn)小數(shù),所以要強制轉(zhuǎn)換s += a; // 累加}return s; }// 當(dāng)n為奇數(shù)時 double oddnumber(int n) {double s = 0; // 累加和double a = 0; // 保存每一項的臨時變量for (int i = 1; i <= n; i += 2) {a = (double)1/i; // 該除法會出現(xiàn)小數(shù),所以要強制轉(zhuǎn)換s += a; // 累加}return s; }4 運行結(jié)果
PS E:\C++WorkSpace> cd "e:\C++WorkSpace\" ; if ($?) { g++ FFF.cpp -o FFF } ; if ($?) { .\FFF } 請輸入n:10 1.141667 PS E:\C++WorkSpace> cd "e:\C++WorkSpace\" ; if ($?) { g++ FFF.cpp -o FFF } ; if ($?) { .\FFF } 請輸入n:51 2.610834 《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的C语言经典例76-根据n的奇偶性累加的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言经典例75-反转整数
- 下一篇: C语言经典例79-字符串排序