scanf 與 printfprintf 輸出,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 為真(含負數)。條件表達式本質是運算式,最終求值為整數。
== 相等比較(非賦值 =)|| 邏輯或、&& 邏輯與
#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;
}
#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;
}
char op; scanf(" %c", &op); 支持 + - * / 直觀輸入。while(1) 實現持續運行,輸入 q 退出。double、%lf、%f。while(getchar() != '\n');。掌握 scanf 返回值檢查、if-else 分支邏輯、基本算術運算,即可編寫出帶輸入保護的交互式小程序。這是從「寫死邏輯」走向「處理動態輸入」的關鍵一步。建議動手敲碼、觀察不同輸入下的程序行為,加深對「條件判斷」與「輸入流」的直觀理解。