2018-12-23

anond:20181223182722

一気に並べてみる

オーソドックスな書きかた

int i;
int space;
for (int i = 0; i < 8; i++)
{
	for (space = 0; space < i; space++)
	{
		printf(" ");
	}
	printf("Hello world\n");

}

すまん <は半角の<に置き換えてくれ(w)

バッファをつかってループを1つ削る

	int i;
	int space;
	char buffer[8];
	char buffer2[8];
	memset(buffer, 0, 8);
	memset(buffer2, 0, 8);
	for (int i = 0; i < 8; i++)
	{
		memset(buffer, 0x20, i);
		printf("%sHello world\n",buffer);

	}

memsetも削ってみる

	int i;
	int space;
	char buffer[8];
	char buffer2[8];
	memset(buffer, 0, 8);
	memset(buffer2, 0, 8);
	for (int i = 0; i < 8; i++)
	{
		buffer[i] = 0x20;
		printf("%sHello world\n",buffer);

	}

この場合特に影響はないが一般的にはmemsetを使う使わないは大きな影響になるので

memsetを削る場合は注意が必要

C++を使ってみる

	std::string space;
	for (int i = 0; i < 8; i++) {
		printf("%sHello world\n", space.c_str());
		space += " ";
	}

C++を使ってみるの別回答

	std::string space_org;
	for (int i = 0; i < 8; i++) {
		std::string space = space_org + " ";
		printf("%sHello world\n", space.c_str());
		space_org = space;
	}

考察

ざつにかんがえても 書き方いろいろ 

それぞれメリット デメリットが有る

まり まぁ どれがいいというよりは

状況に応じてかき分けていく必要がある

学校の授業などだと

アルゴリズムの話で

ヒープソート マージソート クイックソート比較みたいな話があるけど

そこまで難しい話にいかなくても

ハローワールドだけ見てかつ雑に考えてもこのぐらいは

書き方がたくさんある

どれを書くか?どれがいいか? 考えると面白い

記事への反応 -
  • int i; int space; char buffer[8]; char buffer2[8]; memset(buffer, 0, 8); memset(buffer2, 0, 8); for (int i = 0; i < 8; i++) { memset(buffer, 0x20, i); printf("%sHello world\n",buffer); }

    • 3つともおなじ int i;int space;for (int i = 0; i < 8; i++){ for (space = 0; space < i; space++) { printf(" "); } printf("Hello world\n");} すまん <は半角の<に置き換えてくれ(w) int i; int space; char buffer[8]...

      • 技としてはナイスだけど応用は厳しいよね const char *message = " Hello world\n"; for (int i = 0; i < 8; i++) { printf("%s", message + 8 - i); } サンプルとしては、使いにくい書き方

        • std::string space; for (int i = 0; i < 8; i++) { printf("%sHello world\n", space.c_str()); space += " "; } <は< 例外的に 効率は悪いけど こういうふうな書き方もできるC++

          • std::string space; for (int i = 0; i < 8; i++) { printf("%sHello world\n", space.c_str()); space += " "; } std::string space_org; for (int i = 0; i < 8; i++) { std::string space = space_org + " "; printf("%sHello world\n", space.c_str());...

            • 一気に並べてみる オーソドックスな書きかた int i;int space;for (int i = 0; i < 8; i++){ for (space = 0; space < i; space++) { printf(" "); } printf("Hello world\n");} すまん <は半角の<に置き換えてくれ(...

              • マジレスしとくと、hello worldはもっと変態的な書き方ができたはずだぞ 特にC言語なら

              • 初心者用 class mystring{public: char *buffer; mystring() { buffer = (char*)""; } void operator = (const char*t) { int len = strlen(t); buffer = new char[len + 47]; strcpy(buffer, t); } void operator = (const mystring&src) { int len = st...

                • この辺になってくると初心者の人は面倒かな? 解説をつければかなりわかりやすい 基本的な書き方 class mystring{public: char *buffer; mystring() { buffer = (char*)""; } void operator = (const char*t) { int len...

                  • もしかしてスペース増田さんだったの?

                    • ほいよ char format[50]; strcpy(format, "%0s%s"); for (int i = 0; i < 8; i++) { printf(format,"","Hello world\n" ); format[1]++; } スペース増田なら こんなかんじか?

          • 最近はVisual Studioは勉強用なら無料 https://visualstudio.microsoft.com/ja/ Visual Studioだって今は無料 簡単なプログラム printf("Hello world\n"); よく知られているやつ 簡単なプログラム 今回...

            • こういうの見せられていつも思うんだけど、 これで具体的に何ができるのかわからない テトリスとか作れんの?

記事への反応(ブックマークコメント)

人気エントリ

注目エントリ

ログイン ユーザー登録
ようこそ ゲスト さん