今天的菜單:printf()、scanf()、if 語句、switch、三種循環結構。這些基礎知識看似簡單,但正是因為基礎,才蘊含博大精深——依照自己的思路拼湊,便能形成不同風格的程式。
printf(格式控制, 輸出列表);| 格式字元 | 作用 | 說明 |
|---|---|---|
| d / i | 輸出十進制整數 | ①%d 實際長度 ②%md 指定寬度,不足左補空格 ③%ld 長整數 |
| o | 八進制輸出 | %o, %mo, %lo, %mlo |
| x / X | 十六進制輸出 | %x, %mx, %lx, %mlx |
| u | 無符號十進制 | %u, %mu, %lu |
| c | 單一字元 | %c, %mc |
| s | 字串 | %s, %ms, %-ms, %m.ns, %-m.ns |
| f | 實數(小數形式) | %f, %m.nf, %-m.nf;單精度 7 位,雙精度 16 位 |
註:l 用於長整型;m 為最小寬度;n 為小數位數或字串截取長度。
%%,如 printf("%f%%", a);\n 換行。scanf("格式控制", 地址表列);&變數名(如 &a)。* 號用法跳過該輸入值。例:scanf("%d%*d%d", &a, &b); 輸入 123 → a=1, 2 被跳過, b=3。
scanf("%5.2f", &a) 錯誤。關鍵在於縮排與層次清晰:
if (條件)
語句;
else
語句;
if (條件)
語句;
else if (條件)
語句;
...
else
語句;
條件運算符等價形式:max = a > b ? a : b;
switch (表達式) {
case 值1: 語句1; [break;]
case 值2: 語句2; [break;]
...
[default: 語句;]
}
表達式類型僅限整型或字元型。break 詳解見下文。
while (表達式) { 語句序列; }
do { 語句序列; } while (表達式);
for (表達式1; 表達式2; 表達式3) { 語句序列; }
for (m=1; m<10; m++) printf("%4d", m);
for (m=1; m<10; m++) {
for (n=1; n<=m; n++) printf("%4d", m*n);
printf("\n");
}



本文出自「趙玉強的博客」,轉載請保留出處:https://zhaoyuqiang.blog.51cto.com/6328846/1261201