代碼邏輯正確,但 printf("%d\n", d); 若無換行符 \n,標準輸出為全緩衝/行緩衝,程式結束前緩衝區未刷新,導致終端機無顯示。
// 方法 1:加換行 (觸發行緩衝刷新)
printf("%d\n", d);
// 方法 2:手動刷新
printf("%d", d);
fflush(stdout);
// 方法 3:關閉緩衝 (調試用)
setbuf(stdout, NULL);
原代碼 scanf("%if", &n); 應為 scanf("%lf", &n); (double 用 %lf),否則讀取失敗導致 n 未初始化,結果不可預期。
#include
int main() {
double a, b, c;
if (scanf("%lf %lf %lf", &a, &b, &c) != 3) return 1;
printf("%.2f\n", (a + b + c) / 3.0); // 保留兩位小數更合理
return 0;
}