2016-04-18 37 views
-2

說我給輸入數組初始化無法正常工作?

我期待的輸出是...

-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

您正在更改第一個for循環的'm'。您需要將其重置回循環前的狀態。 – NathanOliver

+3

您是否嘗試過使用調試器? – Dai

回答

0

爲什麼你將M? 剛剛從我開始= 0處,並在下次需要數爲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; 
} 
0

您正在使用米的for循環,但你要更新它的價值和在每次迭代它有不同的值。您可以使用另一個臨時變量來存儲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; 
}