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

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

<!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://img1.sycdn.imooc.com//climg/5d99e5040962731301740249.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕查理 2019-10-07 10:29:16

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

   //菱形下班部分
    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>";
            }
//
        }
    }

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师