1

配列があるchar myArrray[5] = {'T','T','T','T','T'}としましょう。3ペアのインスタンスがいくつあるかを確認したいと思いますT

Tの3つのインスタンスすべてをチェックするforloopが下にあります。3つのインスタンスがあるはずですが、何らかの理由で、それをチェックするifステートメントを入力していません。

たぶん私は本当に眠い私を失った。

アレイ全体にTTTの3つのインスタンスがあります。それが私たちがカウンターで3番を取得するために必要なことですが、私たちはそれを取得していません。(T{T[T)T}T]

ここに完全なコード:http://ideone.com/AWyOkH

何か案は?

     for(int k = 0; k < lineInputs; k++)
{
    int counter=0;
    cout << (k+1) << " ";

    for(int u=0; u<arrayElements; u++)
    {
        //cout << myArray[u];
        if(myArray[u] == 'T' && myArray[u+1] == 'T' && myArray[u+2] == 'T')
        {
            counter++;
            cout << counter << " ";
        }
    }
}

問題はありif(myArray[u] == 'T' && myArray[u+1] == 'T' && myArray[u+2] == 'T')ますか?

4

2 に答える 2

1

うまくいくようです。

   char myArray[5] = {'T','T','T','T','T'};
    int lineInputs=1;
    for(int k = 0; k < lineInputs; k++)
    {
      int counter=0;
      cout << (k+1) << " ";
      int arrayElements=5;
      for(int u=0; u<(arrayElements-2); u++)
      {
         //cout << myArray[u];
         if(myArray[u] == 'T' && myArray[u+1] == 'T' && myArray[u+2] == 'T')
         {
             counter++;
             cout << counter << " ";
         }
      }
    }

私が得る出力は次のとおりです。

1 1 2 3 
于 2012-12-28T10:34:50.090 に答える
0

投稿したコードには次のものが必要ですが、正常に動作します。

for(int u=0; u<arrayElements-2; u++)

それ以外の:

for(int u=0; u<arrayElements; u++)

出力は 1 1 2 3 になります。これは、最初に k+1 を出力し、次に 3 つの連続する "T" を見つけるたびにカウンターを出力するためです。あなたがプログラムしたことは正しいです!

于 2012-12-28T13:00:13.107 に答える