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

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

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. 引入依赖 三、核心机制