当前位置: 首页 > news >正文

【C++ Primer Plus习题】15.2

大家好,这里是国中之林!
❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←

问题:

这里是引用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解答:
main.cpp

#include <iostream>
#include <cmath>
#include "exc_mean.h"
using namespace std;double hmean(double a, double b);
double gmean(double a, double b);int main()
{double x, y, z,m;cout << "请输入两个数字: ";while (cin >> x >> y){try{z = hmean(x, y);m = gmean(x, y);cout << x << "和" << y << "的调和平均数为" << z << endl;cout << x << "和" << y << "的几何平均数为" << m << endl;cout << "输入下一组数据,按q结束:" << endl;}catch (bad_hmean&bg){cout<<bg.what();cout << "Try again\n";continue;}catch (bad_gmean& hg){cout << hg.what();//cout << "Values used: " << hg.v1 << "," << hg.v2 << endl;cout << "Sorry, you don't get to play any more.\n";break;}}cout << "Bye" << endl;return 0;
}double hmean(double a, double b)
{if (a == -b)throw bad_hmean();return 2.0 * a * b / (a + b);
}
double gmean(double a, double b)
{if (a < 0 || b < 0)throw bad_gmean();return sqrt(a * b);
}

exc_mean.h

#pragma once
#include <iostream>
#include <stdexcept>
using namespace std;class bad_hmean:public logic_error
{
private:/*double v1;double v2;*/
public:bad_hmean(const string what_arg = "HMean,Invalid argument ") :logic_error(what_arg){}//void mesg();
};//inline void bad_hmean::mesg()
//{
//	cout << "hmean(" << v1 << ", " << v2 << "):" << "invalid arguments: a= -b\n";
//}class bad_gmean:public logic_error
{
public://double v1;//double v2;bad_gmean(const string what_arg="GMean,Invalid argument") :logic_error(what_arg){}//const char* mesg();
};//inline const char* bad_gmean::mesg()
//{
//	return "gmean() arguments should be >= 0\n";
//}

运行结果:
在这里插入图片描述

考查点:

  • 异常

注意:

  • 异常标准头文件
    在这里插入图片描述
  • 初始化错误信息
    在这里插入图片描述
  • 抛出异常对象
    在这里插入图片描述
  • 接受异常
    在这里插入图片描述

2024年9月11日20:08:42

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何使用树莓派构建 LoRa 网关?
  • 小说阅读网站登录注册搜索小说查看评论前后台管理计算机毕业设计/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序
  • 通过ASCII码打印HelloWorld(花式打印HelloWorld)
  • post请求中有[]报400异常
  • 对游戏语音软件Oopz遭遇DDoS攻击后的一些建议
  • Element UI:初步探索 Vue.js 的高效 UI 框架
  • JavaScript变量
  • 2024年华为杯数学建模研赛 最全赛中助攻|选题建议+思路+代码+成品论文预定
  • 数据赋能(200)——开发:数据开发管理——影响因素、直接作用、主要特征
  • 高级算法设计与分析 学习笔记4 二叉查找树
  • 没钱才懂的道理,我推荐你读这4本书
  • MySQL之安装与基础知识
  • 【video clips 专栏 2.1 -- videopad 删除视频中间部分】
  • file | 某文件夹【解耦合】下的文件查找功能实现及功能单元测试
  • Git bash使用
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【Leetcode】104. 二叉树的最大深度
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS3 变换
  • JS 面试题总结
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • python3 使用 asyncio 代替线程
  • 写代码的正确姿势
  • 智能合约Solidity教程-事件和日志(一)
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #QT(TCP网络编程-服务端)
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C++)八皇后问题
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (七)Knockout 创建自定义绑定
  • (生成器)yield与(迭代器)generator
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)程序员技术练级攻略
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .net core 6 集成和使用 mongodb
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET基础篇——反射的奥妙
  • .NET使用存储过程实现对数据库的增删改查
  • []我的函数库
  • [000-01-011].第2节:持久层方案的对比
  • [20171102]视图v$session中process字段含义
  • [BUUCTF 2018]Online Tool
  • [C#]使用C#部署yolov8-seg的实例分割的tensorrt模型
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh
  • [C#]使用PaddleInference图片旋转四种角度检测
  • [C++提高编程](三):STL初识
  • [CDOJ 1343] 卿学姐失恋了
  • [CSS]一文掌握