c语言上机作业:迭代法求平方根

news2024/11/16 19:38:14

1.题目

设计一个函数func用迭代法编程求一个数的平方根。平方根的迭代公式为:牛顿迭代法(要求前后两次迭代值求差的绝对值小于10的-9次方)

2.思路

a.这里要求我们设置一个函数能够完成牛顿迭代法,这里需要使用到函数迭代的知识,即函数里面用应用到函数。(子函数)

b.同时,依据函数的防御原理,我们需要综合考虑一下用户在输入时可能会出现负数的情况,同时当输入数据等于0的时候会出现的分母为0的情况。(主函数)

3.代码实现

a.子函数部分

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

double func(double a)
{
	double b = a;
	double c;
	while (1)
	{
		c = b;
		b = (b + a / b) / 2;
		if (fabs(b - c) < 1e-9)
		{
			break;
		}
	}
	return b;
}

1.这里用fabs()这个绝对值函数时需要库函数的申明,即#include<math.h>

2.同时我们这里使用double类型是为了避免出现栈溢出,数据溢出的情况,break可以当误差足够小时实现循环的终止。同时引用了c来实现代替前面的一项。

b.主函数部分

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

int main()
{
	double d;
	printf("请输入一个正数\n");
	scanf_s("%lf", &d);
	if(d < 0)
	{ 
		printf("输入错误,不在定义域内");
	}
	else if (d = 0)
	{
		printf("该数的平方根为0");
	}
	else
	{
		printf("该数的平方根为%lf", func(d));
		
	}
	return 0;

}

如上,对d即用户输入的数据进行一个前提的判断,从而完善的这一个程序,综上,有:

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

double func(double a)
{
	double b = a;
	double c;
	while (1)
	{
		c = b;
		b = (b + a / b) / 2;
		if (fabs(b - c) < 1e-9)
		{
			break;
		}
	}
	return b;
}
	
int main()
{
	double d;
	printf("请输入一个正数\n");
	scanf_s("%lf", &d);
	if(d < 0)
	{ 
		printf("输入错误,不在定义域内");
	}
	else if (d = 0)
	{
		printf("该数的平方根为0");
	}
	else
	{
		printf("该数的平方根为%lf", func(d));
		
	}
	return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1235568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java 进阶篇】揭秘 Jackson:Java 对象转 JSON 注解的魔法

嗨&#xff0c;亲爱的同学们&#xff01;欢迎来到这篇关于 Jackson JSON 解析器中 Java 对象转 JSON 注解的详细解析指南。JSON&#xff08;JavaScript Object Notation&#xff09;是一种常用于数据交换的轻量级数据格式&#xff0c;而 Jackson 作为一款优秀的 JSON 解析库&am…

基于SSM的社区生鲜商城的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

OpenAI 超 700 名员工联名逼宫董事会;ChatGPT 新功能“阅后即焚”丨 RTE 开发者日报 Vol.89

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

相对定位、绝对定位、固定定位、绝对定位堆叠顺序

相对定位&#xff1a;相对自己本身进行偏移 CSS语法&#xff1a; position: relative;/*相对自己进行定位*/ top: 10px;/*距离上边*/ left: 10px;/*距离左边*/ 演示图&#xff1a; 绝对定位&#xff1a;默认以浏览器进行定位。如果想依照父盒子定位&#xff0c;需要在父盒子…

SpringBean的配置详解

Bean的基础配置 例如&#xff1a;配置UserDaoImpl由Spring容器负责管理 <beanid"userDao"class"com.xfy.dao.Impl.UserDaoImpl"></bean> 此时存储到Spring容器中的Bean的beanName是userDao&#xff0c;值是UserDaoImpl&#xff0c;可以根据bea…

P2 C++变量

前言 一 C变量的作用 本期我们来讨论一下c 中的变量。 在一个 C 程序中&#xff0c;大部分内容实际上都是在使用数据。我们操作任何类型的数据&#xff0c;如包括我们想要改变、想要修改&#xff0c; 想要读和写数据。我们都需要把数据存储进叫做变量的东西里面。变量允许我们…

万字解析设计模式之桥接模式、外观模式

一、桥接模式 1.1概述 桥接模式是一种结构型设计模式&#xff0c;它的作用是将抽象部分和实现部分分离开来&#xff0c;使它们能够独立地变化。这样&#xff0c;抽象部分和实现部分可以分别进行扩展&#xff0c;而不会相互影响。它是用组合关系代替继承关系来实现&#xff0c;…

如何在AIX操作系统上修改Java环境变量

AIX操作系统是IBM的Unix操作系统&#xff0c;通常用于企业级应用和服务器环境。在AIX上配置Java环境变量是执行Java应用程序和开发Java代码的重要步骤。本文将详细介绍如何在AIX上修改Java环境变量&#xff0c;并提供具体示例来帮助你完成这个任务。 步骤1&#xff1a;确定Java…

vue3组件外使用route

1.vue3组件外使用route 在写vue3项目时&#xff0c;有时候我们会把组件内部分逻辑代码分离到外部js中&#xff0c;然后在组件里通过import导入。此时如果我们要在组件外使用route对象&#xff0c;方式与组件内不同&#xff1a; 组件内&#xff1a; import { useRoute } from…

CANopen权威指南【CAN总线协议】

1这个总线定义是老外发明的。 想要使用&#xff0c;就必须按照协议去配置数据帧。 CIA301和cia402协议&#xff0c;实际就是寄存器地址上某一段的定义。 下载地址&#xff1a; CAN in Automation (CiA): Technical documents 注册下载也是非常快的。【没什么难度】 就是资…

基于Python(Pandas+Pyecharts)实现全国热门旅游景点数据可视化【500010037】

导入模块 import jieba import pandas as pd from collections import Counter from pyecharts.charts import Line,Pie,Scatter,Bar,Map,Grid from pyecharts.charts import WordCloud from pyecharts import options as opts from pyecharts.globals import ThemeType from…

【C++】map multimap

文章目录 1.map介绍2.map的使用3.multimap介绍4.multimap的使用 1.map介绍 map的文档 翻译&#xff1a; map是关联容器&#xff0c;它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中&#xff0c;键值key通常用于排序和惟一地标识元素&#x…

机器学习8:在病马数据集上进行算法比较(ROC曲线与AUC)

ROC曲线与AUC。使用不同的迭代次数&#xff08;基模型数量&#xff09;进行 Adaboost 模型训练&#xff0c;并记录每个模型的真阳性率和假阳性率&#xff0c;并绘制每个模型对应的 ROC 曲线&#xff0c;比较模型性能&#xff0c;输出 AUC 值最高的模型的迭代次数和 ROC 曲线。 …

编译器优化代码研究

《Effective C》条款21&#xff1a; /** * 结论&#xff1a;对自定义类型对象表达式objA*objB objC; * 定义friend MyInt operator*(const MyInt& lhs,const MyInt& rhs) * 编译器优化后&#xff1a;operator*()函数内直接在调用接收处构造(此处的匿名临时对象)&am…

万宾科技智能井盖传感器的特性一览

在不断发展的智慧城市技术领域&#xff0c;科学技术的创新永无止境。智能井盖传感器是科学进步带来的高科技产品&#xff0c;为促进城市生命线并保障地上地下连接点安全提供保障。它就在我们脚下&#xff0c;正在悄然改变城市基础设施和公共服务。智能井盖传感器成为现代城市规…

SD-WAN技术:重新定义网络连接方式

随着数字化转型的不断加速&#xff0c;企业对网络的需求呼之欲出。传统的WAN网络由于配置复杂、成本高昂以及带宽利用率低等问题而面临挑战。这时SD-WAN技术的出现正好派上了用场&#xff0c;通过其虚拟化、自动化和智能化的技术手段&#xff0c;大幅度提高了企业网络性能和可靠…

最新AIGC创作系统ChatGPT系统源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图,图片对话理解功能

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

基于晶体结构算法优化概率神经网络PNN的分类预测 - 附代码

基于晶体结构算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于晶体结构算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于晶体结构优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

系统之家U盘重装系统Win10方法步骤

用户发现自己电脑上的Win10系统出现问题了&#xff0c;想要通过重装系统来解决问题。但是&#xff0c;用户还不清楚具体重新安装Win10系统的步骤&#xff0c;接下来小编给大家详细介绍利用U盘完成Win10系统重装的方法&#xff0c;在这里用户需要下载系统之家装机大师软件&#…

Kubeadm部署Kubernetes Containerd集群

文章目录 概述一、硬件系统二、基础配置设置主机名配置主机名与IP地址解析关闭防火墙与selinux时间同步(ntp)升级系统内核配置内核转发及网桥过滤*安装ipset及ipvsadm关闭SWAP分区 三、Containerd准备Containerd获取下载解压Containerd配置文件生成并修改Containerd启动及开机自…