本来是比较容易的题目,但是一旦要考虑到非法输入,会比较复杂。

程序

#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++ 程序】 判断是否构成三角形相关推荐

  1. 写一个程序,判断能否形成三角形,若能,判断是等腰三角形、等边三角形、直角三角形、锐角三角形还是钝角三角形。

    写一个程序,判断能否形成三角形,若能,判断是等腰三角形.等边三角形.直角三角形.锐角三角形还是钝角三角形. #include<stdio.h>int main() {int a, b, c ...

  2. C语言编写程序,从键盘输入三角形的三条边,判断它们是否能构成等腰或直角三角形。

    编写程序,从键盘输入三角形的3条边a.b.c, 判断它们是否能构成等腰或直角三角形,如果能,则输出yes,如果不能,则输出NO. 实验代码: #include <stdio.h> int ...

  3. C语言编程>第二十五周 ③ 下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形;构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成……

    例题:下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形:构成的是等边三角形,还是等腰三角形.若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成三角 ...

  4. 输入三角形的三c语言程序,请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出...

    导航:网站首页 > 请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出 请问c语言中 从键盘输入三角形的3边 调 ...

  5. 一个判断射线和三角形相交的函数

    Code  1 //-----------------------------------------------  2 //-----------检测三角形和射线的相交性---------  3 b ...

  6. 编写程序判断两个数组是否相等,然后编写一段类似的程序比较两个 vector。

    /*编写程序判断两个数组是否相等,然后编写一段类似的程 序比较两个 vector.*/ /* bool judge1(size_t* a, size_t* b, int n) {     for (s ...

  7. C语言程序判断计算机的CPU大小端

    如何判断一台计算机的CPU是大端还是小字端对齐呢? 那么首先得了解何为大端,何为小端,明确一下概念. 所谓大端模式,是指字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中. 小端格式:与大 ...

  8. 判断玫瑰花数c语言程序设计教程课后答案,编写程序判断某个四位整数是否为玫瑰花数(用自定义函数)...

    用C语言编写判断输入的某个数m是否为素数 //判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是不是素数!#include#includemain(){i ...

  9. [fzu 2273]判断两个三角形的位置关系

    首先判断是否相交,就是枚举3*3对边的相交关系. 如果不相交,判断包含还是相离,就是判断点在三角形内还是三角形外.两边各判断一次. //http://acm.fzu.edu.cn/problem.ph ...

  10. 用python编程输入三角形的三条边判断是否构成三角形_vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题,...

    题目: vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题, Dim A=Val(InputBox("请输入a") ) B=Val(InputBox("请 ...

最新文章

  1. 业界首个实时多目标跟踪系统开源
  2. MySQL的介绍以及使用
  3. 设计模式 - 适配器模式
  4. 1.初次运行git前的配置
  5. 推荐一个有趣的Chrome扩展程序-查看任意网站的开发技术栈
  6. java 无法继承抽象类_java抽象类可以被继承吗?
  7. springboot从控制器请求至页面时js失效的解决方法
  8. Spring Boot笔记-使用RedirectAttributes重定向后也可以显示填写的信息
  9. mysql8 index255_详解关于MySQL 8.0走过的坑
  10. mac vim 配置文件
  11. windows用户模式与内核模式
  12. python怎么读取excel-python怎么从excel中读取数据?
  13. Miro Video Converter针对FFMPEG转换参数
  14. 计算机网络管理员绩效考核,绩效考核管理系统是如何发挥作用的?
  15. qt web混合编程_Qt+VS混合编程教程
  16. HTTP协议和APACHE
  17. 如何整合JIRA、FishEye、Crucible进行CodeReview-摘自网络
  18. golang中channal容量的问题
  19. eCharts——柱状图中的柱体颜色渐变
  20. 不能初始化数据库支持endnote_EndNote正确恢复数据库方法 | 科研动力

热门文章

  1. IC-CAD IC 设计流程及 EDA 工具
  2. 数据库TPCC benchmark测试工具对比
  3. 爬取网易云在线课程并保存到Excel
  4. 写给零基础小白看的入门级 Java 基本语法,强烈推荐
  5. VUE利用transition标签实现摇一摇抽签效果
  6. [野狐行网游研究][二期][8.21更新]
  7. PTA 2021C语言程序设计专题实验02-循环
  8. Spring Integration学习笔记:简介
  9. 2022-2028全球与中国变压器测试服务市场现状及未来发展趋势
  10. 强在工业互联网的欧洲,为何没有牛逼的互联网公司?