程序運行出現黑框,輸入數值後直接退出,無輸出結果。
mysqrt() 未聲明返回 double,舊標準默認 int,導致類型不匹配與未定義行為#include
#include
double mysqrt(double x) { // 明確返回類型
if (x < 0) return -1; // 錯誤處理
double guess = x / 2.0;
while (fabs(guess * guess - x) > 1e-6) { // 迭代終止條件
guess = (guess + x / guess) / 2.0;
}
return guess;
}
int main() {
double a;
printf("輸入非負數: ");
scanf("%lf", &a);
printf("平方根 ≈ %.6f\n", mysqrt(a));
return 0;
}
編譯器未報錯不代表代碼正確,C 語言隱式 int 早已廢棄,務必顯式聲明返回類型!