0

Read an unknown number of lines from console in c++ から質問に対する回答を得ました。それでも、解決策はうまくいきません。私を助けてください。これは、特定の質問に対して実装した完全なコードです。その最初のブロックは、複数行を読み取るコードです。

    #include<iostream>
    #include<string>
    #include<stdlib.h>
    #include<vector>

    using namespace std;

    int main()
    {
      vector<int> numbers;
      string line;
      int num = 0,rem = 0,count=0;
      while(getline(cin,line))
      {
       if(line.empty())
       {
//      cout<<"line check successful"<<endl;
        break;
       }
       numbers.push_back(atoi(line.c_str()));
      }
      cout<<endl;
      for(int i =0;i<numbers.size();i++)
      {
      num = numbers[i];
      for(int j=1;j<=num;j++)
      {
        while(j)
        {
            rem = j % 10;
            if(rem != 3 || rem !=7 || rem!=9)
            {
                j = j/10;
                continue;
            }
            count ++;
            j = j/10;
        }
    }
    cout<<count<<endl;
    count = 0;
}

}

その最初の部分は、不明な行数を読み取るアルゴリズムです。ただし、空のリターン時、または何も入力せずに単にエンターを押しても、ループは停止しません。どこが間違っているのか指摘していただけますか。前もって感謝します。

4

1 に答える 1

2

コードのこの部分を見てください。

for(int j=1;j<=num;j++)
{
  while(j)

while ループは j が 0 になるまで停止せず、その後 for ループに移動して j をインクリメントするため、j は 1 になりますが、while ループは j が 0 になるまで再び実行されるため、永遠にループします。

于 2013-09-29T00:04:35.233 に答える