シフト演算についての質問です。

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

シフト演算についての質問です。

#1

投稿記事 by アヤ » 16年前

シフト演算を用いて「□」と「■」を以下のように表示せよという問題が出たのですが
分からなくて困っています。

どなたかお知恵を貸していただけないでしょうか?

□□□□□□□□■
□□□□□□□■
□□□□□□■
□□□□□■
□□□□■
□□□■
□□■
□■

□■
□□■
□□□■
□□□□■
□□□□□■
□□□□□□■
□□□□□□□■
□□□□□□□□■

conio

Re:シフト演算についての質問です。

#2

投稿記事 by conio » 16年前

シフト演算を、どう描画と結びつけるのかが不明なのですが
とりあえず こんな感じでどうでしょう?

※Shiftという関数は、指定した数だけ"□"を表示する関数です。
(ただし、一番右端が"■"になる)

あと、このプログラムには色々と修正の余地があるので、考えてみると良いと思います。

-----------------------------------------------------------------
#include <stdio.h>

void Shift(int num)
{
	int i = 0;
	
	if(num > 0){
		i = 1 << (num - 1);

		while(i){
			if(i & 1)
				printf("■");
			else
				printf("□");

			i >>= 1;
		}
	}
	puts(" ");
}


int main(void)
{
	Shift(9);
	Shift(8);
	Shift(7);
	Shift(6);
	Shift(5);
	Shift(4);
	Shift(3);
	Shift(2);
	Shift(1);
	Shift(2);
	Shift(3);
	Shift(4);
	Shift(5);
	Shift(6);
	Shift(7);
	Shift(8);
	Shift(9);

	return 0;
}
-----------------------------------------------------------------

LUNA

Re:シフト演算についての質問です。

#3

投稿記事 by LUNA » 16年前

へぇ・・・シフト演算子ってこうやって使うんだなぁ~・・・
後、mainの中ループ使ってサクッとしたプログラムにできそうね。

閉鎖

“C言語何でも質問掲示板” へ戻る