C PRIMER PLUS(第六版编程练习)9.11编程练习_9题

2024-04-06 10:58

本文主要是介绍C PRIMER PLUS(第六版编程练习)9.11编程练习_9题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*
使用递归函数重写编程练习8。
#include<stdio.h>
double power(double n, int p);
int main(void)
{double x, xpow;int exp;printf("Enter an number and the positive integer power");printf("to which \nthe number will be raised .Enter q");printf("to quit.\n");while (scanf("%lf%d", &x, &exp) == 2){xpow = power(x, exp);printf("%.3g to the power %d is  %.5g\n ", x, exp, xpow);printf("Enter next pair of number or q to quit.\n");}printf("Hope you enjoyed this power trip --bye!\n");return 0;
}
double power(double n, int p)
{double pow;int i;if (p >= 0){if (p == 0)pow = 1;if (n == 0 && p != 0)pow = 0;pow = 1;for (i = 1; i <= p; i++)pow *= n;}else if (p < 0){pow = 1;for (i = 1; i <= -p; i++)pow *= n;pow = (double)(1 / pow);}return pow;
}
*/
#include<stdio.h>
double power(double n, int p);
int main(void)
{double x, xpow;int exp;printf("Enter an number and the positive integer power");printf("to which \nthe number will be raised .Enter q");printf("to quit.\n");while (scanf("%lf%d", &x, &exp) == 2){xpow = power(x, exp);printf("%.3g to the power %d is  %.5g\n ", x, exp, xpow);printf("Enter next pair of number or q to quit.\n");}printf("Hope you enjoyed this power trip --bye!\n");return 0;
}
double power(double n, int p)
{double pow;if (p > 0){pow = n * power(n, p - 1);}else if (p < 0){pow = (1/n ) * (1 / power(n, -p - 1));}elsepow = 1;return pow;
}

这个递归很符合人的逻辑,看了下代码的运行,一脸蒙蔽。

这篇关于C PRIMER PLUS(第六版编程练习)9.11编程练习_9题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/879730

相关文章

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

mybatis-plus如何根据任意字段saveOrUpdateBatch

《mybatis-plus如何根据任意字段saveOrUpdateBatch》MyBatisPlussaveOrUpdateBatch默认按主键判断操作类型,若需按其他唯一字段(如agentId、pe... 目录使用场景方法源码方法改造首先在service层定义接口service层接口实现总结使用场景my

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

Mybatis-Plus 3.5.12 分页拦截器消失的问题及快速解决方法

《Mybatis-Plus3.5.12分页拦截器消失的问题及快速解决方法》作为Java开发者,我们都爱用Mybatis-Plus简化CRUD操作,尤其是它的分页功能,几行代码就能搞定复杂的分页查询... 目录一、问题场景:分页拦截器突然 “失踪”二、问题根源:依赖拆分惹的祸三、解决办法:添加扩展依赖四、分页

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析