0

while ループに問題があります。2 つの入力変数を使用してひし形を出力するタスクがあります: 1) 行数/中央の文字の最大数を表す整数 2) 出力する文字: 擬似コード: 7 = int $ = char プログラムは出力する必要があります (左側のスペースを考慮してください): http://pastebin.com/cspgz3bA

私のwhileループは混乱しているようです。現在、印刷中です (* スペースをシミュレートします): http://pastebin.com/cspgz3bA

ひし形を 2 つの三角形 (上と下) に分割するのが最も簡単な方法であることがわかりましたが、私のコードは完全にゴミのようです...

編集:: これは三角形の上半分のみを対象としているため、(rows/2)+1 - 中央の行を終了した後に停止することを意味します。

    rows = integerInput;
    maxSpace = integerInput;

    while (currentRow <=((rows/2)+1)) {
        spaceReq = ((maxSpace -1)/2);    // determines spaces required
            while (spaces < spaceReq) {  

                System.out.print("*");
                spaces++;
            }
            while (charPrinted < charReq){
                System.out.print(charInput);
                charPrinted++;

            }               
            currentRow++;
            maxSpace--;
            charReq = charReq +2;
            System.out.println("");
        }

これが最初の反復で機能する理由を誰かが指摘できますが、次の反復で壊れますか?

ありがとうございました!

4

1 に答える 1

3

charPrinted外側のループの先頭にspacesリセットする必要があります。0

于 2012-04-27T23:07:54.543 に答える