老师问一下 倒三角形空格的思路是什么 我这个只能是正三角形

来源:2-13 作业题

昵称加载中__

2019-10-06 16:42:46

<!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
//接收数据
$jin=$_POST['jin'];
//判断用户点了金字塔按钮
if ($jin){
    $num=$_POST['num'];
  for ($i=1;$i<=$num;$i++){     //设定空格次数
       echo '<br>';
      for ($k=1;$k<=$i;$k++){
          echo ' &nbsp';
      }
      for ($x=1;$x<=$i*2-1;$x++){
          echo '*';
      }
  }

}



?>


写回答

1回答

好帮手慕小尤

2019-10-06

同学你好,1. 运行代码报错,未定义的变量。

错误原因:在第一运行时,还没有数据传递就进行赋值导致的错误。

解决方法:可以先判断是否是post传值,如何再赋值。

2. 并未实现正三角形哦!如图所示:

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

解决方法:建议同学修改循环,代码如下:

<?php
//接收数据
if ($_POST){
  //判断用户点了金字塔按钮
  if (isset($_POST['jin'])){
      $num=$_POST['num'];
    for ($i=1;$i<=$num;$i++){     //设定空格次数
         echo '<br>';
        // 使用接收到的数量减第一次循环的数
        for ($k=1;$k<=$num-$i;$k++){
          // 浏览器中存在兼容性问题,对&nbsp的输出存在一定差异性建议使用html代码
          echo "<span style='color:#FFF'>*</span>";
        }
        for ($x=1;$x<=$i*2-1;$x++){
          echo '*';
        }
    }
  }
}
?>

3. 倒三角可根据数量进行循环,代码如下:

 for($i=$num;$i>=1;$i--) {
    echo "<br/>";
    /*****$b代表空格数目******/
    for($b=1;$b<=$num-$i;$b++) {
        //控制输出的空格数
        echo "<span style='color:#fff;'>*</span>";
    }
    /*****$c代表星号数目******/
    for($c=1;$c<=2*$i-1;$c++) {
          echo '*';
    }
  }

祝学习愉快!

0

0 学习 · 4928 问题

查看课程