【C++ 程序】 判断是否构成三角形
本来是比较容易的题目,但是一旦要考虑到非法输入,会比较复杂。
程序
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <sstream> // std::istringstream
using namespace std;int main()
{vector<double> vint1;string num1;int index = 0;begin:try{vint1.clear();cout << "Please input three integers: ";if (index++) char anything = getchar(); // get ready for getlinegetline(cin, num1);istringstream is1(num1);double i;while (is1 >> i){if (i - static_cast<int>(i) == 0)vint1.push_back(i);}if (vint1.size() != 3 || vint1[0] <= 0 || vint1[1] <= 0 || vint1[2] <= 0)throw runtime_error("Illegal input!");}catch (runtime_error err){cout << err.what() << "\nTry Again? Enter Y or N." << endl;char decision;cin >> decision;if (!cin || decision == 'n' || decision == 'N'){return -1;}else{cout << endl;goto begin; // go back to the label 'begin'}}int length[3] = { vint1[0],vint1[1],vint1[2] };sort(length, length + 3);if (length[0] + length[1] <= length[2])cout << "They don't make a triangle." << endl;else cout << "They make a triangle." << endl;return 0;
}
输出示例
分析
- 关于输入详见我的博客 关于 C++中 输入多行不定数量数字 的思考。
- 此输入可排除:数量不对、是小数、是字母、有非正数等。
补充
下面这个程序可以强迫用户反复输入,直至正确。
while(1)
{int a = 0;cin >> a;if (cin.fail()){cin.clear();cin.ignore();cout << "输入的不是整数!\n";}else break;
}
ALL RIGHTS RESERVED © 2020 Teddy van Jerry
欢迎转载,转载请注明出处。
See also
Teddy van Jerry 的导航页
【C++ 程序】 判断是否构成三角形相关推荐
- 写一个程序,判断能否形成三角形,若能,判断是等腰三角形、等边三角形、直角三角形、锐角三角形还是钝角三角形。
写一个程序,判断能否形成三角形,若能,判断是等腰三角形.等边三角形.直角三角形.锐角三角形还是钝角三角形. #include<stdio.h>int main() {int a, b, c ...
- C语言编写程序,从键盘输入三角形的三条边,判断它们是否能构成等腰或直角三角形。
编写程序,从键盘输入三角形的3条边a.b.c, 判断它们是否能构成等腰或直角三角形,如果能,则输出yes,如果不能,则输出NO. 实验代码: #include <stdio.h> int ...
- C语言编程>第二十五周 ③ 下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形;构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成……
例题:下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形:构成的是等边三角形,还是等腰三角形.若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成三角 ...
- 输入三角形的三c语言程序,请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出...
导航:网站首页 > 请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出 请问c语言中 从键盘输入三角形的3边 调 ...
- 一个判断射线和三角形相交的函数
Code 1 //----------------------------------------------- 2 //-----------检测三角形和射线的相交性--------- 3 b ...
- 编写程序判断两个数组是否相等,然后编写一段类似的程序比较两个 vector。
/*编写程序判断两个数组是否相等,然后编写一段类似的程 序比较两个 vector.*/ /* bool judge1(size_t* a, size_t* b, int n) { for (s ...
- C语言程序判断计算机的CPU大小端
如何判断一台计算机的CPU是大端还是小字端对齐呢? 那么首先得了解何为大端,何为小端,明确一下概念. 所谓大端模式,是指字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中. 小端格式:与大 ...
- 判断玫瑰花数c语言程序设计教程课后答案,编写程序判断某个四位整数是否为玫瑰花数(用自定义函数)...
用C语言编写判断输入的某个数m是否为素数 //判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是不是素数!#include#includemain(){i ...
- [fzu 2273]判断两个三角形的位置关系
首先判断是否相交,就是枚举3*3对边的相交关系. 如果不相交,判断包含还是相离,就是判断点在三角形内还是三角形外.两边各判断一次. //http://acm.fzu.edu.cn/problem.ph ...
- 用python编程输入三角形的三条边判断是否构成三角形_vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题,...
题目: vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题, Dim A=Val(InputBox("请输入a") ) B=Val(InputBox("请 ...
最新文章
- 业界首个实时多目标跟踪系统开源
- MySQL的介绍以及使用
- 设计模式 - 适配器模式
- 1.初次运行git前的配置
- 推荐一个有趣的Chrome扩展程序-查看任意网站的开发技术栈
- java 无法继承抽象类_java抽象类可以被继承吗?
- springboot从控制器请求至页面时js失效的解决方法
- Spring Boot笔记-使用RedirectAttributes重定向后也可以显示填写的信息
- mysql8 index255_详解关于MySQL 8.0走过的坑
- mac vim 配置文件
- windows用户模式与内核模式
- python怎么读取excel-python怎么从excel中读取数据?
- Miro Video Converter针对FFMPEG转换参数
- 计算机网络管理员绩效考核,绩效考核管理系统是如何发挥作用的?
- qt web混合编程_Qt+VS混合编程教程
- HTTP协议和APACHE
- 如何整合JIRA、FishEye、Crucible进行CodeReview-摘自网络
- golang中channal容量的问题
- eCharts——柱状图中的柱体颜色渐变
- 不能初始化数据库支持endnote_EndNote正确恢复数据库方法 | 科研动力