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

C語言計算正整數平方根:循環輸入直到 0 結束

     編輯:程式設計疑難解答

題目需求

輸入一系列正整數(每行一個),輸入 0 結束。對每個正整數輸出其平方根(一行一個結果)。

標準實現

#include <math.h>
#include <stdio.h>

int main() {
    int x;
    while (1) {
        scanf("%d", &x);
        if (x == 0) break;
        // sqrt 接受 double,轉換避免警告;輸出用 %f 或 %lf
        printf("%lf\n", sqrt((double)x));
    }
    return 0;
}

關鍵點解析

  • #include <math.h>:引入 sqrt 函數聲明。
  • (double)x:整數隱式轉換為 double,也可寫 sqrt(x) 依賴隱式轉換,但顯式轉型更規範。
  • %lf:printf 中 %f 和 %lf 均可輸出 double(C99 起),scanf 必須用 %lf 讀 double。
  • 循環結構:while(1) + break 簡潔處理「輸入 0 終止」。

進階考慮

  • 輸入合法性檢查:scanf 返回值判斷是否成功讀取整數。
  • 大數處理:int 範圍內 sqrt 精度足夠;超大整數需高精度庫。
  • 輸出格式:題目未指定小數位,%lf 默認 6 位小數;如需定製用 %.2f 等。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved