• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラム)

コマンドプロンプトでのプログラム実行結果を生成する方法

このQ&Aのポイント
  • コマンドプロンプトでコンパイラして、指定したプログラムを実行すると、2013、hello、nagoya、kobe、osakaという結果が表示される。
  • プログラムは初心者には難しいかもしれないが、指定した結果を生成するためには、ループ構造を使用する必要がある。
  • プログラムが間違っている可能性もあるので、確認してみてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.6

あなたが書かれたものを改造するなら以下のようにしてください。 -------------------------------------------------- #include <stdio.h> void main(void) { int j; for(j=1;j <= 5;j++) { printf("\n"); printf("2013\n"); if (j == 1) continue; printf("hello\n"); if (j == 2) continue; printf("nagoya\n"); if (j == 3) continue; printf("kobe\n"); if (j == 4) continue; printf("osaka\n"); } } -------------------------------------------------- もっと、シンプルにしたいということであれば、以下のようにしてください。 --------------------------------------------------- #include <stdio.h> void main(void) { int i,j; char moji[][10] = {"2013\n","hello\n","nagoya\n","kobe\n","osaka\n"}; for(i=0;i < 5;i++) { for(j=0;j < 5;j++) { printf(moji[j]); if (i==j) break; } printf("\n"); } } -------------------------------------------------------------------------------

その他の回答 (5)

回答No.5

#include <stdio.h> /* strs[0]~strs[n-1]をプリントする */ void print_n(const char* strs[], int n) { int i; for ( i = 0; i < n ; ++i ) { printf("%s\n", strs[i]); } } int main() { int i; const char* table[] = { "2013", "hello", "nagoya", "kobe", "osaka" }; for ( i = 1; i <= 5; ++i ) { print_n(table, i); printf("\n"); } return 0; }

回答No.4

charではなく汎用テキストで書いてみる #include "stdafx.h" _TCHAR* strings[] = {_T("2013"),_T("hello"),_T("nagoya"),_T("kobe"),_T("osaka"),}; int _tmain(int argc, _TCHAR* argv[]) { for (int i = 0; i < sizeof(strings)/sizeof(strings[0]); ++i) { for (int j = 0; j <= i; ++j) { _tprintf(_T("%s\n"), strings[j]); } _tprintf(_T("\n")); } return 0; } ちなみに「コンパイラして」とは? 「コンパイルして」ならわかるが。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.3

知らないことを教えてもらうというのは大いに結構ですが、このような単純な論理の組立が出来ないようであれば、先行きが無いと思いますよ。 今のロジックでは 2013 hello nagoya kobe osaka が繰り返し回数だけプリントされる、というのは理解されていますか? 最初は、forを使わずに、プリントしたいものを羅列したら如何ですか? そこからforを使うことによってどうプログラムが短くなるか考えたらどうでしょう。

51131226y
質問者

補足

それは理解しております。 羅列はしましたが、もっとシンプルに効率よくする方法をしろとのことで・・・。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

"hello\n"を表示させる条件はなんですか? 同様に"nagoya\n"を表示させる条件はなんですか? # jがいくつ以上の時に表示指せる必要があるんでしょう? というか…二重ループにする必要ありますか??? for(5回のループ) ループ1回目以上なら"2013\n"出力 ループ2回目以上なら"hello\n"出力  : みたいに処理できませんか?

51131226y
質問者

補足

すいません。その方法がわからないんです。(泣)

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.1

if文にて j>1 の条件を付け 条件を満たした時のみ printf("hello\n"); を表示する if文にて j>2 の条件を付け 条件を満たした時のみ printf("nagoya\n"); を表示する if文にて j>3 の条件を付け 条件を満たした時のみ printf("kobe\n"); を表示する printf("osaka\n"); も同じように for i ループは不要 又は、文字列を配列変数に格納し、for i ループで表示する

51131226y
質問者

補足

具体的にプログラミングするとどういうプログラムになりますか?理解に乏しくてすみません。。。

関連するQ&A