C言語でピラミッドをつくる課題のアドバイスをいただきたいです

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: C言語でピラミッドをつくる課題のアドバイスをいただきたいです

Re: C言語でピラミッドをつくる課題のアドバイスをいただきたいです

#4

by pimpernel » 1年前

usaoさん、boxさんありがとうございます。

Re: C言語でピラミッドをつくる課題のアドバイスをいただきたいです

#3

by box » 1年前

こんなことがしたいんかな?

コード:

#include <stdio.h>

void getShapeAndHeight(int *s, int *h)
{
    do {
        printf("形は?(1:○, 2:△, 3:□)"), scanf("%d", s);
    } while (!(1 <= *s && *s <= 3));
    do {
        printf("段数は?(1から20)"), scanf("%d", h);
    } while (!(1 <= *h && *h <= 20));
}

void drawPyramid(int n, int h)
{
    char *s[] = { "", "○", "△", "□" };
    int x, y;

    for (y = 0; y > -h; y--) {
        for (x = -h + 1; x <= h - 1; x++) {
            printf("%s", (y <= x && y <= -x) ? s[n] : "  ");
        }
        putchar('\n');
    }
}

int main(void)
{
    int shape, height;

    getShapeAndHeight(&shape, &height);
    drawPyramid(shape, height);
    return 0;
}

Re: C言語でピラミッドをつくる課題のアドバイスをいただきたいです

#2

by usao » 1年前

こういう話でしょう.

コード:

const char Circle[] = "○";
const char Triangle[] = "△";
const char Square[] = "□";
const char * const Shapes[3] = { Circle, Triangle, Square };  //配列

for( int i=0; i<3; ++i )
{	printf( "%s\n", Shapes[i] );	}  //配列添え字でどうの

C言語でピラミッドをつくる課題のアドバイスをいただきたいです

#1

by pimpernel » 1年前

初めまして。プログラミング初心者なのでこの文章にも至らない点が多々あるかもしれませんがアドバイスお願いします。

模様を選択して、1 段から 20 段の範囲で入力された段数のピラミッドを表示するプログラム
を作成するという課題なのですが、1を入力したときは〇、2のときは△、3のときは□を使ってピラミッドを作成したいです。ピラミッドを書く模様(〇や△)は配列を用いて、指定された模様の番号を添字として用いて作成するようです。先生からはfor文を使うと良いというアドバイスをいただきました。
そのあとピラミッドの段数を入力して、先ほどの模様でピラミッドを作ります。
最後の入力した数の段数でピラミッドをつくるのは何とか少しわかりそうなのですが、最初の模様を選択するところが全く分かりません。アドバイスをお願いいたします。

<stdio.h>でmain関数を使っています。

ページトップ