2-12作业提交错误

来源:2-13 作业题

qq_墨羡_0

2018-08-17 14:53:23

我把php文件和效果图一起打包提交上去,但是讲师回复作业提交错误,求解

php文件代码:

<!DOCTYPE html>

<html dir="ltr">

  <head>

    <meta charset="utf-8">

    <title>2-12编程练习</title>

  </head>

  <body>

    <form action="#" method="post">

      <input type="text" name="layer" placeholder="请输入要打印的行数">

      <br/>

      <button type="submit" name="pyramide" value="pyramide">金字塔</button>

      <button type="submit" name="rhombus" value="rhombus">空心菱形</button>

    </form>

    <?php

    header('content-type=text/html;charset=utf-8');

    error_reporting(E_ALL&~E_NOTICE);

    $layer = $_POST['layer'];

    //判断输入是否合法

    if(is_numeric($layer)){

      //当输入的数字大于0时

      if($layer>0){

          if(isset($_POST['pyramide'])){

              for($i=1; $i<=$layer; $i++){

                  //输出左侧的空白的倒三角形

                  for($j=$layer-$i; $j>=1; $j--){

                    // echo "a";

                    echo "&nbsp;";

                  }

                  for($k=1; $k<=2*($i-1)+1; $k++){

                    echo "*";

                  }

                  echo "<br/>";

              }

          }elseif($_POST['rhombus']){

                //分成两种情况:行数是奇数和行数是偶数

                //行数是奇数

                if($layer%2 == 1){

                  //菱形上半部分

                  for($i=1; $i<=($layer+1)/2; $i++){

                      //输出菱形左边的倒三角形

                      for($j=($layer+1)/2-$i; $j>=1; $j--){

                        echo '<span style="color:$FFF">&nbsp;</span>';

                      }

                      //输出正三角形:分两种情况

                      for($k=1;$k<=2*($i-1)+1; $k++){

                          if($k==1 || $k==2*($i-1)+1){

                            echo "*";

                          }else {

                            // echo "a";

                            echo "&nbsp;";

                          }

                      }

                      echo "<br/>";

                  }

                  // 菱形下半部分:当行反过来,其他不变

                  for($i=($layer-1)/2; $i>=1; $i--){

                    for($j=($layer+1)/2-$i; $j>=1; $j--){

                      echo '<span style="color:$FFF">&nbsp;</span>';

                    }

                    for($k=1;$k<=2*($i-1)+1; $k++){

                        if($k==1 || $k==2*($i-1)+1){

                          echo "*";

                        }else {

                          // echo "a";

                          echo '&nbsp;';

                        }

                    }

                    echo "<br/>";

                  }

                }else {

                  //行数是偶数

                  //输出菱形的上半部分

                  for($i=1; $i<=$layer/2; $i++){


                      //输出倒三角形

                      for($j=$layer/2-$i; $j>=1; $j--){

                        // echo "a";

                        echo "&nbsp;";

                      }

                      //输出正三角形

                      for($k=1;$k<=2*($i-1)+1; $k++){

                        if($k ==1 ||$k==2*($i-1)+1){

                          echo "*";

                        }

                        else {

                          // echo "a";

                          echo "&nbsp;";

                        }

                      }

                  echo "<br/>";

                  }

                  //输出菱形的下半部分

                  for($i=$layer/2; $i>=1; $i--){

                      //输出倒三角形

                      for($j=$layer/2-$i; $j>=1; $j--){

                        // echo "a";

                        echo "&nbsp;";

                      }

                      //输出正三角形

                      for($k=1;$k<=2*($i-1)+1; $k++){

                        if($k ==1 ||$k==2*($i-1)+1){

                          echo "*";

                        }

                        else {

                          // echo "a";

                          echo "&nbsp;";

                        }

                      }

                  echo "<br/>";

                  }

                }

          }

      //当输入的数字小于0时

      }else{

        echo "层数为正整数";

      }

    }

    else{

      echo "输入不合法,请输入合法数字";

    }


     ?>

  </body>

</html>


写回答

2回答

guly

2018-08-17

你好,正三角,倒三角高度保持一直,同样处理即可

参考代码:

if(isset($num)){
    if(is_numeric($num) && $num>0){
        if($category2){
            for($i=1;$i<=$num;$i++){
                for($j=0;$j<$num-$i;$j++){
                    echo '<span style="color:#fff">*</span>';
                }
                for($space=0;$space< 2*$i-1;$space++){
                    if($space==0 || $space == 2*$i-2){
                        echo '<span style="color:#000">*</span>';
                    }else{
                        echo '<span style="color:#fff">*</span>';
                    }
                }
                echo '<br/>';
            }
            for($i=$num-1;$i>=1;$i--){
                for($j=0;$j<$num-$i;$j++){
                    echo '<span style="color:#fff">*</span>';
                }
                for($space=0;$space<2*$i-1;$space++){
                    if($space==0 || $space == 2*$i-2){
                        echo '<span style="color:#000">*</span>';
                    }else{
                        echo '<span style="color:#fff">*</span>';
                    }
                }
                echo '<br/>';
            }
        }
    }else{
        echo "请输入正整数";
    }
}else{
    echo '不能为空';
}

祝学习愉快!

0

guly

2018-08-17

你好,由于下载操作当给你带来不便抱歉,

贴出的代码有两处需要修改:

1、要用白色*代替空格,

建议使用html代码 <span style='color:#fff;'>*</span> 代替  的输出。

2、建议以提交的数量循环,$layer/2改为$layer,

如果解决您的问题请采纳,祝学习愉快!


0
hq_墨羡_0
h 但是$layer 是层数,如果这样写那么层数是5,菱形高度不就是10了吗?还是先把$layer/2的得数赋给另一个变量?
h018-08-17
共1条回复

0 学习 · 4928 问题

查看课程