首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

2015 級 C++ 第 2 週實踐項目指南:從 Hello World 到循環應用

     編輯:關於C++

項目 1:宣告「主權」—— 第一個博客程序

要求:編寫 C++ 程序輸出個性化信息,發布為 CSDN 開山之作。

#include 
int main() {
    std::cout << "Hello, CSDN! 這是我的第一篇 C++ 博客。\n";
    std::cout << "作者:[你的名字]  日期:2015-09-XX\n";
    return 0;
}

項目 2:體重狀態判斷

標準體重公式:標準體重(kg) = 身高(cm) - 100
超重:> 標準體重 × 1.2;超輕:< 標準體重 × 0.8

任務遞進實現

#include 
#include 
using namespace std;

int main() {
    double height, weight;
    cout << "請輸入身高(cm)和體重(kg):";
    cin >> height >> weight;
    
    double standard = height - 100;
    cout << fixed << setprecision(1);
    cout << "標準體重:" << standard << " kg\n";
    
    // (1) 僅輸出標準體重
    // (2) 超重提示
    if (weight > standard * 1.2)
        cout << "提示:您屬於超重!\n";
    
    // (3) 完整判斷
    if (weight > standard * 1.2)
        cout << "狀態:超重\n";
    else if (weight < standard * 0.8)
        cout << "狀態:超輕\n";
    else
        cout << "狀態:正常\n";
    
    // (4) 輸出體重狀態(綜合版)
    string status = (weight > standard * 1.2) ? "超重" :
                    (weight < standard * 0.8) ? "超輕" : "正常";
    cout << "體重狀態:" << status << endl;
    return 0;
}

項目 3:循環求和練翋

輸入整數 m,計算:

  1. 1² + 2² + ... + m²
  2. 1 + 3 + 5 + ... + m(奇數和)
  3. 1 + 1/2 + 1/3 + ... + 1/m(調和級數)
  4. 1 - 1/2 + 1/3 - 1/4 + ... + (-1)^(m+1)/m(交替調和級數)
  5. m! = 1 × 2 × ... × m
#include 
#include 
using namespace std;

int main() {
    int m;
    cout << "請輸入 m:";
    cin >> m;
    
    // (1) 平方和
    long long sumSq = 0;
    for (int i = 1; i <= m; ++i) sumSq += 1LL * i * i;
    cout << "平方和:" << sumSq << endl;
    
    // (2) 奇數和
    long long sumOdd = 0;
    for (int i = 1; i <= m; i += 2) sumOdd += i;
    cout << "奇數和:" << sumOdd << endl;
    
    // (3) 調和級數
    double harm = 0;
    for (int i = 1; i <= m; ++i) harm += 1.0 / i;
    cout << "調和級數:" << setprecision(6) << harm << endl;
    
    // (4) 交替調和級數
    double altHarm = 0;
    for (int i = 1; i <= m; ++i) 
        altHarm += (i % 2 ? 1.0 : -1.0) / i;
    cout << "交替調和級數:" << setprecision(6) << altHarm << endl;
    
    // (5) 階乘
    long long fact = 1;
    for (int i = 2; i <= m; ++i) fact *= i;
    cout << m << "! = " << fact << endl;
    return 0;
}

項目 4:循環進階應用

(1) 萊布尼茨公式求 π

π/4 = 1 - 1/3 + 1/5 - 1/7 + ...,直到最後一項絕對值 < 10⁻⁵

double pi = 0;
int denom = 1;
int sign = 1;
while (1.0 / denom >= 1e-5) {
    pi += sign * 1.0 / denom;
    denom += 2;
    sign = -sign;
}
pi *= 4;
cout << "π ≈ " << setprecision(6) << pi << endl;

(2) 菲波那契數列(至超過 10000)

int f1 = 1, f2 = 1;
cout << f1 << " " << f2 << " ";
while (true) {
    int fn = f1 + f2;
    if (fn > 10000) break;
    cout << fn << " ";
    f1 = f2;
    f2 = fn;
}
cout << endl;

學習重點總結

  • cin/cout 格式化輸入輸出(<iomanip> 控制精度)
  • if-else 多條件分支
  • for/while 循環結構與邊界控制
  • 變量類型選擇:int/long long/double
  • 算法邏輯:累加器、標誌位、迭代更新

調試建議

  1. 小測試驗證邊界:m=0,1,2
  2. 打印中間變量追蹤邏輯
  3. 注意整數除法截斷:1/2 == 0,須用 1.0/2
  4. 階乘快速溢出,int 最大 12!,改用 long long(20!)或 double
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved