老师帮忙看看为什么金字塔下面还会跟着菱形
<meta charset="UTF-8">
<title>作业</title>
</head>
<body>
<form action="#" method="post">
<input type="text" name="num" placeholder="请输入要打印的行数"><br/>
<button type="submit" name="button" value="pyramid">金字塔</button>
<button type="submit" name="button" value="diamond">空心菱形</button>
</form>
<br/><br/>
<?php
$param = $_POST;
if($_POST){
//金字塔实现代码
if($param['button'] =='pyramid'){
$n = $_POST['num'];
for($i=1;$i<=$n;$i++){
for($j=1;$j<=$n-$i;$j++)
echo ' ';//打印一个由空格组成的倒直角三角形
for($k=1;$k<=2*$i-1;$k++){
echo '*';//打印一个由星号组成的等腰三角形,三角形星星的个数=2*层数-1。
}
echo '<br/>';
}
}elseif ($param['button'] == 'diamond') {
$n = $_POST['num'];
//空心菱形上半部分
for($i=1;$i<=$n;$i++){
for($j=1;$j<=$n-$i;$j++){
echo ' ';//打印一个空的倒直角三角
}
for($k=1;$k<=($i-1)*2+1;$k++){
//打印一个实心型三角,判断输出行首行尾的星星,中间部分直接打印出空。
if($k==1||$k==($i-1)*2+1){
echo '*';
}else{
echo ' ';
}
}
echo '<br/>';
}
}
//空心菱形的下半部分
for($i=$n;$i>=0;$i--){
//打印一个空的倒三角
for($j=0;$j<=$n-$i;$j++){
echo ' ';
}
for($k=1;$k<=2*$i-3;$k++){
//判断输出行首行尾的星星,中间部分直接打印出空.
if($k==2*$i-3||$k==1){
echo '*';
}else{
echo ' ';
}
}
echo '<br/>';
}
}else{
exit;
}
?>
</body>
</html>
正在回答
同学,您好!导致金字塔下面还会跟着菱形的主要原因是您把菱形的下半部分放到了else if的括号外面拉。
把菱形的下半部分的代码放到elseif里面去,就不会出现你说的那种情况啦!
如果解决了您的问题,请采纳!祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星