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 " ";
}
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"> </span>';
}
//输出正三角形:分两种情况
for($k=1;$k<=2*($i-1)+1; $k++){
if($k==1 || $k==2*($i-1)+1){
echo "*";
}else {
// echo "a";
echo " ";
}
}
echo "<br/>";
}
// 菱形下半部分:当行反过来,其他不变
for($i=($layer-1)/2; $i>=1; $i--){
for($j=($layer+1)/2-$i; $j>=1; $j--){
echo '<span style="color:$FFF"> </span>';
}
for($k=1;$k<=2*($i-1)+1; $k++){
if($k==1 || $k==2*($i-1)+1){
echo "*";
}else {
// echo "a";
echo ' ';
}
}
echo "<br/>";
}
}else {
//行数是偶数
//输出菱形的上半部分
for($i=1; $i<=$layer/2; $i++){
//输出倒三角形
for($j=$layer/2-$i; $j>=1; $j--){
// echo "a";
echo " ";
}
//输出正三角形
for($k=1;$k<=2*($i-1)+1; $k++){
if($k ==1 ||$k==2*($i-1)+1){
echo "*";
}
else {
// echo "a";
echo " ";
}
}
echo "<br/>";
}
//输出菱形的下半部分
for($i=$layer/2; $i>=1; $i--){
//输出倒三角形
for($j=$layer/2-$i; $j>=1; $j--){
// echo "a";
echo " ";
}
//输出正三角形
for($k=1;$k<=2*($i-1)+1; $k++){
if($k ==1 ||$k==2*($i-1)+1){
echo "*";
}
else {
// echo "a";
echo " ";
}
}
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 '不能为空';
}祝学习愉快!
guly
2018-08-17
你好,由于下载操作当给你带来不便抱歉,
贴出的代码有两处需要修改:
1、要用白色*代替空格,
建议使用html代码 <span style='color:#fff;'>*</span> 代替 的输出。
2、建议以提交的数量循环,$layer/2改为$layer,
如果解决您的问题请采纳,祝学习愉快!
相似问题