0

我必须创建一个钻石,但我一直得到错误的输出。

我写了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
;;

我怎样才能使这项工作?

4

1 回答 1

0

for your " donespace" for-loop 在钻石的顶部和底部都位于错误的位置:

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

我建议运行您的脚本bash -x以查看发生了什么。

于 2013-02-25T06:19:21.180 回答