将大于k的数组元素导入另一个数组C ++

时间:2017-03-14 11:02:28

标签: c++ arrays sorting

如何导入大于k的A [n]数组元素(在这种情况下,是数组A [n]的第一个元素),并打印它们?这不起作用,你能解释一下为什么吗?

#include <iostream>
using namespace std;
main() {
    int a[100], b[100], n, k, i=0;
    cin>>n;
    for (i; i<n; i++)
    cin>>a[i];
    i=0;
    k=a[0];
    for (i; i<n; i++) {
        if (a[i]>k)
        b[i]=a[i];
}
    i=0;
    for (i; i<n; i++)
cout<<b[i];
}

1 个答案:

答案 0 :(得分:0)

数组b的输出不能完美运行的原因是因为并非数组b的所有元素都存储了一个值。对于i的所有值,其中[i]&lt; = k,b [i]将具有值0或垃圾值(取决于编译器)。

为了避免它,您应该将代码编写为:

#include<iostream>
using namespace std;
main() {
    int a[100], b[100], n, k, i=0;
    cin>>n;
    for (i; i<n; i++)
    cin>>a[i];
    i=0;
    k=a[0];
    int j=0;           //another variable j for keeping track of array b
    for (i; i<n; i++) {
        if (a[i]>k) {
         b[j]=a[i];
         j++;   
        }
}
    i=0;
    for (i; i<j; i++)   //Run the value of i from i=0 to i=j
    cout<<b[i];
}