解决方案 »

  1.   

      static void Main(string[] args)
            {
                double a, b, c, p, h, area;
                Console.Write("请输入三角形的边A: ");
                string s = Console.ReadLine();
                a = double.Parse(s);
                Console.Write("请输入三角形的边B: ");
                s = Console.ReadLine();
                b = double.Parse(s);
                Console.Write("请输入三角形的边C: ");
                s = Console.ReadLine();
                c = double.Parse(s);
                if (a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a)
                {
                    Console.WriteLine("三角形的三边分别为:a={0},b={1},c={2}", a, b, c);
                    p = a + b + c;
                    h = p / 2;
                    area = Math.Sqrt(h * (h - a) * (h - b) * (h - c));
                    Console.WriteLine("三角形的周长={0},面积={1}",p,area);
                }
                else Console.WriteLine("无法构成三角形!");
                Console.ReadKey();
            }
      

  2.   


    http://www.javadad.com
      

  3.   

    LZ的思路和我用的思路是一样的,但代码比我的要少很多,比我高明多了。这种算法的思路就是建立一人以parent_id为键名的二级数组,用递归调用这个数组。array(2978) {
      [0]=>
      object(stdClass)#1 (4) {
        ["id"]=>
        string(8) "50094064"
        ["subject"]=>
        string(22) "在线影视/电子书"
        ["parent_id"]=>
        int(0)
        ["type_id"]=>
        int(0)
      }
    .........上面是组织形式,个人习惯把这分类生成对象保存到txt文本里面,生成的有自定义键名,不能直接list(),用array_values取出后,再用list还是不正常,又换了$t的元素键名,还是不正常。//源数组 转化了数组 下面是foreach里面的内容 这个list形式不能用$t=array_values($t);
    list($id,$a[$pid][$t[$id],$pid,$tid) = $t;于是又改了一下,能用了。//源数据转换成了对象
    foreach($object_tmp as $t) {
    $t=array($t->subject,$t->id,$t->parent_id);
    list($a[$pid][$id],$id,$pid) = $t;
    }
    不过,换了一位置。//源数据转换成了对象
    foreach($object_tmp as $t) {
    $t=array($t->id,$t->subject,$t->parent_id);
    list($id,$a[$pid][$id],$pid) = $t;
    }又不能用了,看了半天list的说明,也没能找到答案
      

  4.   

    附上本人原来的做法:
    对于list转化二维数组的,个人采取比较笨拙的方法,源数组与上面的类似//以父级id为键名的  更多一维的(一般3维)数组
    $tmp=array();
    foreach ($item_category as $it){
    if( count($tmp[$it["parent_id"]]) ){
    $tmp[$it["parent_id"]][count($tmp[$it["parent_id"]])]=$it;
    }else{
    $tmp[$it["parent_id"]][0]=$it;
    }
    }$tmp就是相当于LZ方法的数组$a从项目文件里面拿出来的,写在控制器里面的,就不改了//用于存放数据(整理好的)的公共变量
    var $sorta=array();
    //树形排序核心部分  pid:父级起始  tmp以父级id为第一维的数组
    public function get_all_($pid,$tmp){
    $tt=$tmp[$pid];
    foreach($tt  as $ttt){
    $this->sorta[count($this->sorta)]=$ttt;
    $this->get_all_($ttt["id"],$tmp);
    }
    }