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

C++ 入門教程:從 scanf 到條件語句構建簡易計算器

     編輯:關於C++

一、 輸入輸出基礎:scanf 與 printf

printf 輸出,scanf 從標準輸入讀取格式化數據。關鍵點:

  • scanf 需傳入變量地址(&var),以便寫入內存。
  • 返回值 = 成功匹配賦值的項目數。scanf("%d", &n) 返回 1 表示讀到整數,0 表示輸入非數字。
  • 每次最好只讀一個值,避免緩衝區殘留導致後續讀取混亂。

int number, ret;
printf("請輸入整數:");
ret = scanf("%d", &number);
if (ret == 0) { puts("輸入無效"); return 1; }

二、 條件語句 if-else

語法:


if (條件表達式) {
    // 條件為真(非 0)執行
} else {
    // 條件為假(0)執行
}

判斷規則:C 語言中 0 為假,非 0 為真(含負數)。條件表達式本質是運算式,最終求值為整數。

  • == 相等比較(非賦值 =)
  • || 邏輯或、&& 邏輯與

三、 實戰:計算器演進

版本 1:僅加法 + 輸入校驗


#include 
int main() {
    int n1, n2, ret;
    printf("第一個數:"); ret = scanf("%d", &n1);
    if (!ret) { puts("輸入錯誤"); return 0; }
    printf("第二個數:"); ret = scanf("%d", &n2);
    if (!ret) { puts("輸入錯誤"); return 0; }
    printf("%d + %d = %d\n", n1, n2, n1 + n2);
    return 0;
}

版本 2:四則運算(運算符用數字 1-4 代替)


#include 
int main() {
    int n1, n2, op, ret, result;
    // ... 讀 n1, n2 同版本 1 ...
    printf("運算符 (1:+ 2:- 3:* 4:/):");
    ret = scanf("%d", &op);
    if (!ret || op < 1 || op > 4) { puts("運算符無效"); return 0; }
    
    if (op == 1) result = n1 + n2;
    else if (op == 2) result = n1 - n2;
    else if (op == 3) result = n1 * n2;
    else result = n1 / n2; // 整除
    
    printf("%d %c %d = %d\n", n1, "+-*/"[op-1], n2, result);
    return 0;
}

四、 進階優化方向

  1. 字符運算符:直接讀 char op; scanf(" %c", &op); 支持 + - * / 直觀輸入。
  2. 循環菜單:用 while(1) 實現持續運行,輸入 q 退出。
  3. 浮點支持:改用 double、%lf、%f。
  4. 錯誤恢復:讀取失敗時清空輸入緩衝區 while(getchar() != '\n');。

五、 總結

掌握 scanf 返回值檢查、if-else 分支邏輯、基本算術運算,即可編寫出帶輸入保護的交互式小程序。這是從「寫死邏輯」走向「處理動態輸入」的關鍵一步。建議動手敲碼、觀察不同輸入下的程序行為,加深對「條件判斷」與「輸入流」的直觀理解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved