c++ - 关于c++中的数组

标签 c++ arrays

我已经学习了 3 个月的 c++,我研究了数组,我编写了一个程序,可以从用户那里获取输入,然后程序将这些数字存储在一个特殊的数组中,然后程序将它们拆分成两个数组,一个用于偶数,另一个用于奇数,我的问题是,当我尝试显示它们时,发生了一些错误,但我无法弄清楚,你能帮帮我吗?

int main () {
    int even[5];
    int odd[5];
    int num;

    cout << "enter 4 numbers!";
    for(int i=0; i<4; i++) {
        cin >> num;
        if( num%2 == 0){
            cout << "its an even number!";
            even[i] += num;
        }
        else{
            cout << "its an odd number!";
            odd[i] += num;
        }
    }
    cout << "The odd number/s is/are: ";
    for( int u=0; u<4; u++){
        cout << odd[u] << endl;
    }

    cout << endl;
    cout << "The even number/s is/are: " << endl;
    for(int z=0; z<4; z++){
        cout << even[z] << endl;
    }
}

谢谢你帮助我!

最佳答案

从您的问题来看,您似乎正试图将给定的整数数组拆分为偶数和奇数两个数组。这里的问题是您将值分配到新数组中的方式,您有一个计数器 i 负责将值放入 even[i]odd[i]。所以你有很多 splinter 的部分 even[0] 可能存在,但 odd[1] 可能是你获得的第一个奇数值。您应该有单独的计数器来存储这些值。因此,对您的代码的更正如下所示

int main () {
    int even[5];
    int odd[5];
    int num;
    int evencount = 0;
    int oddcount = 0;

    cout << "enter 4 numbers!";
    for(int i=0; i<4; i++) {
        cin >> num;
        if( num%2 == 0){
            cout << "its an even number!";
            even[evencount++] = num;
        }
        else{
            cout << "its an odd number!";
            odd[oddcount++] = num;
        }
    }
    cout << "The odd number/s is/are: ";
    for( int u=0; u < oddcount; u++){
        cout << odd[u] << endl;
    }

    cout << endl;
    cout << "The even number/s is/are: " << endl;
    for(int z=0; z<evencount; z++){
        cout << even[z] << endl;
    }
}

关于c++ - 关于c++中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060894/

相关文章:

C++ 在类中声明一个静态对象

c++ - 如何在 C++ 中内联自修改汇编代码?

c++ - 编译期间的 time_t 声明问题

c++ - 发出c++代码system()调用外部编译器编译其他c++代码

c++ - 关于 C++ 中名称重整的问题

c - 如何将时间存储在数组中

java - 较大数组的最后一个元素索引

javascript - 从 children 数组中获取特定的 child

objective-c - 从 fwrite 参数获取数据数组的内容 - 使用 Objective-C 打印数据

javascript - Knockout.js – 获取对象数据