练习:用C / C ++中的整数填充向量

时间:2016-02-03 14:53:59

标签: c++ arrays algorithm

有人可以帮助我练习这个练习吗?

用C / C ++描述一种算法:

  1. 定义2个向量:首先命名为 a ,其中包含1000个整数,第二个 b ,其中包含500个整数
  2. 通过在每个位置插入从标准输入读取的值来编辑向量 a 。假设最多500个值是正数。
  3. 在第2点之后,编辑向量 b 在向量 a 中插入许多1个正数。向量 b 的剩余部分必须包含值0。
  4. 此:

    #include<cstdlib>
    #include <iostream>
    using namespace std; 
    int main() { 
        int A[1000], B[1000]; int i; 
        for(i=0;i<1000;i++) { 
            cout<<"Initialising vector A: "; 
            cin>>A[i]; 
        } 
        int j; 
        for(i=0,j=999;i<1000;i++,j--)
             B[j]=A[i]; 
        cout<<"Vector B is: "; 
        for(i=0;i<1000;i++) 
            cout<<B[i]<<"\t";
        system("pause");
        return 0;
    }
    

    是我对不同请求所做的类似练习,但现在我不知道如何编辑它以符合新要求。

1 个答案:

答案 0 :(得分:1)

你需要的只是一个像这样的循环

int B[500] = {};

//...

int n = 0; 
for ( int i = 0, i < 1000 ; i++ )
{
    if ( A[i] > 0 ) B[n++] = 1; 
}

for ( int i = 0; i < n; i++ ) cout << B[i] << ' ';
cout << endl;