0

こんにちは、私は初心者のプログラマーで、C を勉強しています。昨日勉強しているときに、この演習に出くわしました。

3 つのパラメーター (c、n、m) を受け取り、家をペイントするプログラムを作成する必要があります。最初のパラメーター (c) は家を形成する特徴を確立し、2 番目 (n) と 3 番目 (m) は家の三角形 (屋根) と長方形の高さを決定します。屋根を作成するために、プログラムは行ごとに 1、3 から (2 * n +1) 文字を印刷します。その間、((2n-1) * m) の長方形が表示されます。例: パラメータとして O,3,4 を指定すると、出力されます

                    o
                   ooo
                  ooooo
                 ooooooo
                  ooooo
                  ooooo
                  ooooo
                  ooooo

それで私はそれを解決することに決めましたが、私はこの演習で 3 時間を超えています。屋根を作成するための「for」に入れる適切な条件を見つけることができません。長方形で大丈夫なので、誰かが屋根に手を差し伸べることができますお願いします;

4

1 に答える 1

1

May not be the best possible solution but here's a way to do it

void print_house(int c, int n, int m){
    int line_width;
    int max_width = 2*n +1;
    int padding = 0;
    int i=0,j=0,k=0;

    //print the roof
    for(i=0; i<= n; i++){
        line_width = 2*i +1;
        padding = (max_width - line_width)/2;

        for(k=0; k<padding; k++){
        printf(" ");
        }

        for(j=0; j< line_width; j++){
            printf("%c",c);
        }
        printf("\n");
    }

    //print the rectangle
    for(i=0;i<m;i++){
        printf(" ");
        for(j=0;j< max_width -2; j++){
            printf("%c",c);
        }
        printf("\n");
    }

}
于 2012-10-28T14:58:36.077 に答える