老师我菱形下半部分为什么会是这样

来源:2-13 作业题

昵称加载中__

2019-10-06 20:58:45

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<form action="#" method="post">
    <input type="text" name="num" id=""placeholder="请输入要打印的行数"><br>
    <input type="submit"  name="jin" value="金字塔">
    <input type="submit" value="空心菱形" name="lin">

</form>
</body>
</html>




<?php
//除去错误
error_reporting(E_ALL&~E_NOTICE);
//接收金字塔空心菱形数据
$jin=$_POST['jin'];
$l=$_POST['lin'];
//判断用户点了金字塔按钮    先判断是否是传值,再进行赋值。
if ($jin){
    //接收数据
    $num=$_POST['num'];
    //输入负数时提示消息
    if ($num>=1){
  for ($i=1;$i<=$num;++$i){     //设定空格次数
      echo '<br>';
      // 使用接收到的数量减第一次循环的数  第一次接收到的是1 如果输入3就是3-1 2个++空格
      for ($k=1;$k<=$num-$i;++$k){
          // 浏览器中存在兼容性问题,对&nbsp的输出存在一定差异性建议使用html代码
          echo "<span style='color:#FFF'>*</span>";
      }
      //设定*号 三角形星星的个数=2*层数-1
      for ($x=1;$x<=$i*2-1;$x++){
          echo '*';
      }
  }
    }else{
        exit('层数请输入证正数');
    }
}
//

//判断用户点了空心菱形   先判断是否是传值,再进行赋值。
if ($l){
    //接收数据
    $num=$_POST['num'];
    //菱形上半部分
    for ($li=1;$li<=$num;$li++){   //设定空格次数
        echo '<br>';
        // 使用接收到的数量减第一次循环的数
        for ($lk=1;$lk<=$num-$li;$lk++){
            // 浏览器中存在兼容性问题,对&nbsp的输出存在一定差异性建议使用html代码
            echo "<span style='color: #fff;'>*</span>";
        }
        for ($lx=1;$lx<=$li*2-1;$lx++){
            //设置中间空白部分  取循环第一个=1 和最后一个
            if ($lx==1 || $lx==$li*2-1){
                echo '*';
            }else {
                echo "<span style='color:#fff;'>*</span>";
            }
        }
    }
   //菱形下班部分
   for ($i=$num;$i>=1;$i--){
       echo '<br>';
       for ($k=1;$k<=$num-$i;$k++){
           echo "<span style='color:#FFF'>*</span>";
       }
       for ($c=1;$c<=$i*2-1;$c++){
           if ($c==$i*2-1||$c==1){
               echo '*';
           }else{
               echo "<span style='color:#fff'></span>";
           }
//
       }

   }

}

http://img.mukewang.com/climg/5d99e5040962731301740249.jpg

写回答

1回答

好帮手慕查理

2019-10-07

您好,菱形下半部分中输出白色*时,缺少了*。另外下半部分菱形比上半部分菱形少一层。修改如下:

   //菱形下班部分
    for ($i=$num-1;$i>=1;$i--){
        echo '<br>';
        for ($k=1;$k<=$num-$i;$k++){
            echo "<span style='color:#FFF'>*</span>";
        }
        for ($c=1;$c<=$i*2-1;$c++){
            if ($c==$i*2-1||$c==1){
                echo '*';
            }else{
                echo "<span style='color:#fff'>*</span>";
            }
//
        }
    }

祝学习愉快!

0

0 学习 · 4928 问题

查看课程