空色天絵 / 過剰広告
分类
标签
260 字
1 分钟
测试文章
测试
二级目录
三级目录
#include <iostream>
#include <stdlib.h>
#include <cmath>
// 定义一个函数来计算平方根
double calculateSquareRoot(double a, double epsilon = 1e-5) {
// 初始猜测值
double x_n = a / 2.0;
// 迭代求解
while (true) {
double x_n_plus_1 = 0.5 * (x_n + a / x_n);
// 检查是否满足精度要求
if (std::abs(x_n - x_n_plus_1) < epsilon) {
return x_n_plus_1;
}
x_n = x_n_plus_1;
}
}
int main() {
double a;
bool validInput = false; // 标记输入是否有效
// 循环直到用户输入一个有效的正数
while (!validInput) {
std::cout << "请输入一个正数以计算其平方根: ";
std::cin >> a;
// 检查输入流状态,确保输入的是数字
if (std::cin.fail()) {
// 如果输入失败,重置输入流并忽略错误的输入
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "错误:输入必须是正数,请重新输入。\n";
} else if (a > 0) {
validInput = true;
} else {
std::cout << "错误:输入必须是正数,请重新输入。\n";
}
}
double result = calculateSquareRoot(a);
std::cout << "平方根为: " << result << std::endl;
system("pause");
return 0;
}Astro
