代碼中 printf("c=f%\ns=f%\nv=f%\n", c, s, v); 輸出結果為 c=f, s=f, v=f,變量值未顯示。
格式佔位符寫反了:
正確語法是 %f(百分號在前),代碼寫成 f%(字母在前),導致編譯器將其視為普通字符「f%」直接輸出,而非格式化變量。
#define PI 3.1415926
#include
#include
int main() {
double r = 3.57, c, s, v;
c = 2 * PI * r;
s = PI * pow(r, 2);
v = 4.0/3.0 * PI * pow(r, 3);
printf("c=%f\ns=%f\nv=%f\n", c, s, v); // 修正 %f 位置
return 0;
}
| 類型 | 格式符 | 示例 |
|---|---|---|
| double/float | %f / %.2f | 3.14 / 3.14 |
| int | %d | 42 |
| char | %c | A |
| string | %s | Hello |
格式字符串錯誤是 C/C++ 初學者最高頻 Bug,慎記「% 在前,類型在後」!