08/12/09 23:48:23
>>238
今C++Builder動く環境にないので疑似コードで。
変数start_posに-1を代入。(-1は「カウントしてない」というマーキング)
変数iを使って、メモ1の最初から最後までループを回す。{
start_posの値が-1で、{
メモ1の行iの内容が"1"なら、{
start_posにiの値を代入。
}
}
そうじゃなくて、{
メモ1の行iの内容が"0"なら、{
start_posの値が"1"の開始位置を指しているので、これを表示。
そして(i-start_pos)の計算結果が"1"の続いた個数なので、これも表示。
次のカウントのために、start_posに-1を代入する。
}
}
}
連続したデータを処理するときはいろんなやり方があるけど、
・データの変わり目に注目する。("1"の始まりと、"1"の終わり="0"の始まり)
・変わり目でプログラムで行う処理を切り替える。(カウント中と、結果表示&カウント終了)
とするのが一つの方法。