ページ 11

課題で*を使って△を表示.....

Posted: 2016年11月13日(日) 21:31
by ネバー
課題で△を真ん中に表示するやり方がよくわからないので教えてください!! (プロトタイプ宣言で関数を作る)(ポインタとかは習ってません。)

Re: 課題で*を使って△を表示.....

Posted: 2016年11月13日(日) 21:58
by double-clutch.
三角形の底辺が *(アスタリスク) 5つだったとして、

空白の代わりを - で表現すると...

コード:

--*
-*-*
*****
となります...
『アスタリスク』と『空白』を出力する回数に気をつけてcodeを書けばいいと思います。

Re: 課題で*を使って△を表示.....

Posted: 2016年11月13日(日) 22:38
by box
ネバー さんが書きました:課題で△を真ん中に表示する
真ん中ってどこですか。

Re: 課題で*を使って△を表示.....

Posted: 2016年11月13日(日) 22:58
by ネバー
出力画面の真ん中って意味です......。

Re: 課題で*を使って△を表示.....

Posted: 2016年11月13日(日) 23:13
by akasann
面白そうだったので、色々試しながら作ってみました。参考になるか分りませんが・・・
私がやるとこんな感じに仕上がりました。行列を使っていくのもありだと思います。
何かの課題っぽいので載せないほうが良かったのかもしれませんが・・・

コード:

#include<stdio.h>
#define N 10

int main(void){
	int i,j,k,l;
	char s='*';

	for(i=0;i<N;i++){
		for(j=0;j<N-i;j++)
			printf(" ");
		for(j=0;j<i;j++){
			if(i>=3&&i<N-1)
				break;
			else
				printf("%2c",s);
		}
		if(i>=3&&i<N-1){
			for(j=0;j<2;j++){
				printf("%2c",s);
				for(k=0;k<(i*2)-4;k++)
						printf(" ");
			}
		}
		putchar('\n');
	}
	return 0;
}

Re: 課題で*を使って△を表示.....

Posted: 2016年11月14日(月) 00:06
by YuO
ネバー さんが書きました:出力画面の真ん中って意味です......。
標準出力がディスプレイに繋がっていると仮定しても,表示可能な幅や高さを知る方法は標準規格には存在しません。
特定の環境用,という前提があれば,何らかの方法で幅や高さを知ることができるかもしれませんが。

まずは,課題で言う「真ん中」が本当に「出力画面の真ん中」という意味なのかは確認した方がよいと思います。
もしかしたら,幅や高さに何らかの仮定がなされているかもしれませんし。

Re: 課題で*を使って△を表示.....

Posted: 2016年11月14日(月) 21:21
by ネバー
色々ご解答ありがとうございます。
とても参考になりました皆さんの意見などを元にやってみようと思います!!