我必须创建一个钻石,但我一直得到错误的输出。
我写了3个循环,第一个是高度,第二个是空格,第三个是星号
第二部分是钻石的后半部分
enter shape
diamond
width
5
* * * *
* * * * * *
* * * * * *
* * * *
* * * *
* * * * * *
* * * * * *
* * * *
"diamond")
echo "width"
read width
for ((h = 1; h <= $width; h++))
do
for ((s = $width; s > h; s--))
do
printf ' '
for ((a = 1; a <= h; a++))
do
printf '* '
done
done
echo ""
done
for ((h = $width; h > 0; h--))
do
for ((s = $width; s > h; s--))
do
printf ' '
for ((a=1 ; a <= h; a++))
do
printf '* '
done
done
echo ""
done
;;
我该如何做到这一点?
答案 0 :(得分:0)
“空间”done
的{{1}} - 循环位于钻石顶部和底部的错误位置:
for
我建议您使用for ((h = 1; h <= $width; h++))
do
for ((s = $width; s > h; s--))
do
printf ' '
done # <-- This should be here!
for ((a = 1; a <= h; a++))
do
printf '* '
done
echo ""
done
运行脚本以查看正在发生的事情。