- ベストアンサー
c++ 配列で最大要素数を100にしたプログラムのDisplay()は?
最大要素数が100の配列で社員リストを作っているのですが、入力の途中(たとえば5人分を入力した後で)それまでのリストを表示したいとします。そのときは、for(int i=0; i<MAX; i++)とするとMAX=100となっている為アウトプットがおかしくなってしまいます。こういう場合はMAXの代わりをどうしたらよいのでしょうか?宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
実際どういうコーディングをしているのか解らないので、テクニックの例をあげるらいしかできないのですが、構造体を初期化するときに未入力フラグを入れておきます。 #define UNKNOWN -1 #define MAX 100 /* 初期化ルーチン */ for (i=0;i<MAX;i++) emp[i].empid = UNKNOWN; /* リスト表示関数 */ for (i=0;i<MAX;i++) { /* 未入力データはすっとばす */ if(emp[i].empid == UNKNOWN) continue; /* 実際の表示処理 */ } 入力データをカウントするのも手ですが・・・。
その他の回答 (2)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.3
単純にこうでは? input = 5; for( int i = 0; i < input; i++ ) { ・ ・ ・
- chie65536
- ベストアンサー率41% (2512/6032)
回答No.2
1.最初にループで100個の配列を空文字で初期化する 2.5人分入力する(5件だけ空文字以外になる 3.アウトプットはループで0からMAXの手前まで回すが、空文字はスキップする