麻烦老师,帮我看一下 为什么菱形下半部分出不来?代码错了吗?
<!DOCTYPE HTML>
<head>
<meta charset="utf-8">
<title>2-13作业</title>
</head>
<body>
<form action="#" method="post">
<input type="text" name="num" id="" placeholder="请输入要打印的行数"></br>
<input type="submit" name="jzt" value="金字塔">
<input type="submit" name="kxlx" value="空心棱形">
</form>
</body>
</html>
<?php
error_reporting(E_ALL&~E_NOTICE);
header('content-type:text/html;charset=utf-8');
//接收参数
$num=$_POST['num'];
$jzt=$_POST['jzt'];
$kxlx=$_POST['kxlx'];
//判断按钮是否点击,且$num是否为数值;
if ($jzt){
//$i为行数
for ($i=1;$i<=$num;$i++){
//$k为空格的数量
for ($k=1;$k<=$num-$i;$k++){
echo ' ';
}
for ($j=1;$j<=$i*2-1;$j++){
echo '*';
}
echo '<br/>';
}
}
//判断参数是否是空心棱形参数;
$num=$_POST['num'];
if($kxlx){
for ($a=1;$a<=$num;$a++){//层数控制;
for ($b=1;$b<=$num-$a;$b++){//空白部分;
echo ' ';
}
for ($c=1;$c<=2*$a-1;$c++){//'*'的总数
if ($c==1||$c==2*$a-1){//根据位置显示'*'
echo '*';
}else{
echo ' ';
}
}
echo '<br/>';
}
//菱形下半部分
for ($a=$num-1;$a>=1;$a--);{ //层数控制
for($b=1;$b<=$num-$a;$b++){ //空直角三角形
echo ' ';
}
for($c=$a*2-1;$c>=1;$c--){ //*的总数;
if($c==1||$c==$a*2-1){ //*的位置
echo '*';
}else{ //*菱形内部;
echo ' ';
}
} echo '<br/>';
}
}
?>
正在回答 回答被采纳积分+1
同学你好,因为没有进入下半部分的循环,所以下半部分没有没有输出。在下半部分循环中多了一个分号(;),导致未进行循环。代码如下:
//菱形下半部分 for ($a=$num-1;$a>=1;$a--){ //层数控制 for($b=1;$b<=$num-$a;$b++){ //空直角三角形 echo ' '; } for($c=$a*2-1;$c>=1;$c--){ //*的总数; if($c==1||$c==$a*2-1){ //*的位置 echo '*'; }else{ //*菱形内部; echo ' '; } } echo '<br/>'; }
祝学习愉快!
- 参与学习 人
- 提交作业 626 份
- 解答问题 4928 个
想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星