求一个C#程序:具体问题如下:输入三条边,求三角形面积。

首先要判断是否能构成三角形(非法字符,三边关系),再用海伦公式求。

C#程序:

using System;

class Program
{
static void Main()
{
double a, b, c; //三角形的三边长

//接收输入
Console.WriteLine("请输入三角形的三边长");
try
{
Console.Write("a : ");
a = double.Parse(Console.ReadLine());
Console.Write("b : ");
b = double.Parse(Console.ReadLine());
Console.Write("c : ");
c = double.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.WriteLine("边长必须是数值!");
return;
}

//判断是否构造三角形
if (a >= b + c || b > a + c || c > a + b)
{
Console.WriteLine("{0}、{1}、{2}不能构成三角形!", a, b, c);
return;
}

double s = (a + b + c) / 2;
double area;
area = Math.Sqrt(s * (s - a) * (s - b) * (s - c));

Console.WriteLine("{0}、{1}、{2}构成的三角形面积是{3}", a, b, c, area);
}
}

运行测试:
请输入三角形的三边长
a : 3
b : 4
c : 5
3、4、5构成的三角形面积是6追问

例如我输入a的值为“12aadd",则如何逐个字符判断输入非法呢??
谢谢

追答

有单线程控制台程序中很难实现。

追问

那一般该如何判断字符串为纯字符串呢?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-15
using System;

namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("已知三角形各边长,求其面积");
double a, b, c,s;
a = double.Parse(Console.ReadLine());
b= double.Parse(Console.ReadLine());
c= double.Parse(Console.ReadLine());
if (a + b - c > 0 && a+ c - b > 0 && b + c - a > 0)
{
s = myArea(a, b, c);
Console.WriteLine("面积是:{0}", s);

}
else
{
Console.WriteLine("构不成三角形");

}

Console.ReadKey();
}
static private double myArea(double x,double y,double z)
{

return 0.25 * System.Math.Sqrt((x + y + z) * (x + y - z) * (y + z - x)*(z+x-y));//海伦公式

}
}
}
第2个回答  2012-03-06
相似回答