首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言初學者求助:年齡換算秒數程序邏輯疑問

     編輯:程式設計疑難解答

問題描述

初學者編寫 C 程序將輸入的年齡(整數)乘以一年的秒數(3.156e7),輸出結果。代碼編譯運行無報錯,但對變量命名與業務含義存疑。

原始代碼

#include
int main(void) {
    int a;
    float years, acounts;
    years = 3.156e7;
    scanf("%d", &a);
    acounts = years * a;
    printf("your age is %f.\n", acounts);
    return 0;
}

專家分析

程序語法正確,邏輯無誤:輸入合理整數(如 20),輸出為對應秒數(約 6.3 億),計算結果準確。但存在以下可改進點:

  • 變量名 years 實際存儲「每年秒數」,建議改為 secondsPerYear。
  • acounts 疑為 accounts 拼寫錯誤,語義不明,建議用 totalSeconds。
  • 缺乏輸入驗證(如負數年齡),且浮點數輸出格式可優化。

優化建議

#include
int main(void) {
    int age;
    const double SECONDS_PER_YEAR = 3.156e7;
    printf("請輸入年齡: ");
    if (scanf("%d", &age) != 1 || age < 0) {
        printf("輸入無效\n");
        return 1;
    }
    double totalSeconds = age * SECONDS_PER_YEAR;
    printf("你已生活 %.0f 秒\n", totalSeconds);
    return 0;
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved