阵列初始化无法正常工作?

时间:2016-04-18 19:16:15

标签: c++ arrays

说我给出了输入

  

5 10

我期待输出为......

  

-5 6 7 8 9 10

但我实际上得到了输出......

  

-5 6 7

这是我的代码。

 #include<iostream>
 using namespace std;
  int main()
    {
    int prime[1000];
    int m,n;
    cin>>m>>n;
    for(int i=1;i<=n-m+1;i++)
      {
       prime[i]=m;
       m++;
      }
    for(int i=1;i<=n-m+1;i++)
       {
       cout<<prime[i];
       }

return 0;

}

2 个答案:

答案 0 :(得分:0)

为什么要换m? 从i = 0到n-m开始,你需要的下一个数字是i + n:

#include<iostream>

int main()
{
    int prime[1000];
    int m,n;
    std::cin>>m>>n;
    for(int i=0;i<=n-m;i++) 
    {
        prime[i]=i+m;
    }
    for(int i=0;i<=n-m;i++) 
    {
        std::cout << prime[i] << ' ';            
    }

    std::cout << endl;
    return 0;
}

答案 1 :(得分:0)

您在for循环中使用m但是您正在更新其值,并且在每次迭代中它都具有不同的值。您可以使用另一个临时变量来存储m的值,如下面的代码所示:

#include<iostream>
using namespace std;
int main()
{
     int prime[1000];
     int m,n, l;
     cin>>m>>n;
     l = m;
     for(int i=0;i<=n-m;i++)
     {
         prime[i]=l;
         l++;
     }
     for(int i=0;i<=n-m;i++)
     {
         cout<<prime[i];
     }

     return 0;
}