阵列初始化工作不正常

Array Initialisation is not working correctly?

本文关键字:不正常 工作 初始化 阵列      更新时间:2023-10-16

假设我正在给出输入

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;

}

为什么要更改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;
}

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