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;
}

}

它的第一部分是读取未知行数的算法。但是,在空返回或不输入任何输入的情况下按 enter 时,循环不会停止。你能指出哪里出错了。?提前致谢。

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 回答