题目描述
给定三个已知长度的边,确定是否能够构成一个三角形,这是一个简单的几何问题。我们都知道,这要求两边之和大于第三边。实际上,并不需要检验所有三种可能,只需要计算最短的两个边长之和是否大于最大那个就可以了。 这次的问题就是:给出三个正整数,计算最小的数加上次小的数与最大的数之差。
输入描述:
每一行包括三个数据a, b, c,并且都是正整数,均小于10000。
输出描述:
对于输入的每一行,在单独一行内输出结果s。s=min(a,b,c)+mid(a,b,c)-max(a,b,c)。上式中,min为最小值,mid为中间值,max为最大值。
示例1
输出
复制0
#include<iostream> using namespace std; int min(int a,int b,int c) { int min = a; if(min>b) min = b; if(min>c) min = c; return min; } int max(int a,int b,int c) { int max = a; if(max<b) max = b; if(max<c) max = c; return max; } int mid(int a,int b,int c) { if(min(a,b,c)<a && a<max(a,b,c)) return a; else if(min(a,b,c)<b && b<max(a,b,c)) return b; else return c; } int main() { int a,b,c; int sum; while(cin>>a>>b>>c) { cout<<min(a,b,c)+mid(a,b,c)-max(a,b,c)<<endl; } return 0; }