1

假设我有一个数组char myArrray[5] = {'T','T','T','T','T'}并且我想检查我有多少个 3 对实例T

我在下面有一个 forloop 来检查 T 的所有 3 个实例。应该有 3 个实例,但由于某种原因,它甚至没有输入检查它的 if 语句。

也许我只是迷路了,我真的很困。

整个阵列中有 3 个 TTT 实例。这就是我们必须在柜台上获得数字 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,然后每次找到三个连续的“T”时的计数器。您编写的程序是正确的!

于 2012-12-28T13:00:13.107 回答