关于c++; 我已经学习C++ 3个月了,我研究了数组,我编写了一个程序,这样程序就可以从用户那里输入,然后程序将这些数字存储在一个特殊的数组中,然后程序将它们分成两个数组,一个是偶数,另一个是奇数,我的问题是,当我试图显示它们时,出了点问题,但我想不出来,你能帮帮我吗 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; } } int main(){ 整数偶数[5]; int奇数[5]; int-num; 库特数; 如果(数值%2==0){ cout

关于c++; 我已经学习C++ 3个月了,我研究了数组,我编写了一个程序,这样程序就可以从用户那里输入,然后程序将这些数字存储在一个特殊的数组中,然后程序将它们分成两个数组,一个是偶数,另一个是奇数,我的问题是,当我试图显示它们时,出了点问题,但我想不出来,你能帮帮我吗 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; } } int main(){ 整数偶数[5]; int奇数[5]; int-num; 库特数; 如果(数值%2==0){ cout,c++,arrays,C++,Arrays,从您的问题来看,似乎您试图将给定的整数数组拆分为两个偶数和奇数数组。这里的问题是您将值分配到新数组的方式,您有一个计数器i,负责将值放入偶数[i]和奇数[i]。因此,即使[0]可能存在,但奇数[1]可能是您获得的第一个奇数值。您应该有单独的计数器来存储这些值。因此,对代码的更正如下所示 int main () { int even[5]; int odd[5]; int num; int evencount = 0; int oddcount = 0;

从您的问题来看,似乎您试图将给定的整数数组拆分为两个偶数和奇数数组。这里的问题是您将值分配到新数组的方式,您有一个计数器
i
,负责将值放入
偶数[i]
奇数[i]
。因此,即使[0]可能存在,但奇数[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;
    }
}
int main(){
整数偶数[5];
int奇数[5];
int-num;
int evencount=0;
int oddcount=0;
库特数;
如果(数值%2==0){

cout从您的问题来看,似乎您试图将给定的整数数组拆分为两个偶数和奇数数组。这里的问题是您将值分配到新数组的方式,您有一个计数器
i
,负责将值放入
偶数[i]
奇数[i]
。因此,即使[0]可能存在,但奇数[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;
    }
}
int main(){
整数偶数[5];
int奇数[5];
int-num;
int evencount=0;
int oddcount=0;
库特数;
如果(数值%2==0){

我有一个稍微不同的方法:

#include <iostream>
using namespace std;

int main () {
    int array[4]; // array size needs to be 4 only and not 5
    /*int num;*/ // not required
    bool is_odd[4] = {false, false, false, false};


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

    cout << endl;
    cout << "The even number/s is/are:\n" << endl;
    for(int u=0; u < 4; u++) {
        if (is_odd[u] == false)
            cout << array[u] << endl;
    }
}
#包括
使用名称空间std;
int main(){
int数组[4];//数组大小只能是4,不能是5
/*int num;*///不需要
布尔是奇数[4]={false,false,false,false};
cout数组[i];
if(数组[i]%2==0){

我有一个稍微不同的方法:

#include <iostream>
using namespace std;

int main () {
    int array[4]; // array size needs to be 4 only and not 5
    /*int num;*/ // not required
    bool is_odd[4] = {false, false, false, false};


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

    cout << endl;
    cout << "The even number/s is/are:\n" << endl;
    for(int u=0; u < 4; u++) {
        if (is_odd[u] == false)
            cout << array[u] << endl;
    }
}
#包括
使用名称空间std;
int main(){
int数组[4];//数组大小只能是4,不能是5
/*int num;*///不需要
布尔是奇数[4]={false,false,false,false};
cout数组[i];
if(数组[i]%2==0){


您可以访问已声明但未初始化的数组值。因此数组中有任何值。如6.49e154。声明时始终进行初始化!

您可以访问已声明但未初始化的数组值。因此数组中有任何值。如6.49e154。声明时始终进行初始化!

首先使用不同的变量对于偶数和奇数数组中的索引。当前,您对这两个数组都使用i。假设第一个数字是偶数,而scond是奇数,您希望奇数位于奇数数组中的索引0处,但当前它将位于索引1处。您对未初始化的变量使用
+=
,首先对偶数和奇数数组中的索引使用不同的变量。当前,您正在使用两个数组的gi。假设第一个数字是偶数,而scond是奇数,则您希望该奇数位于奇数中的索引0处,但当前它将位于索引1处。您正在未初始化的数组上使用
+=
variable@MajdNabeel这个答案似乎解决了您的问题。您应该将其标记为已接受的解决方案。
偶数和
奇数的大小
不必是5,4应该足够了,因为它只接受4个数字。@MajdNabeel看起来这个答案解决了你的问题。你应该将它标记为接受的解决方案。
偶数和
奇数的大小不必是5,4应该足够了,因为它只接受4个数字。为什么不
bool isOdd[4]={false}
为了清晰起见?@Caleth,是的,我们可以这样做。@Caleth因为它不增加清晰性,它会增加混乱。可以使用
bool isOdd[4]={}
隐式地初始化整个数组,使用
false
bool isOdd[4]={false,false,false,false};
来显式初始化数组。现在人们的印象是
bool isOdd[4]={true};
会用所有
true
来初始化数组,但事实并非如此。@nwp说得好。我主要是问“为什么int?”。任何==true的东西都是愚蠢的为什么不
bool isOdd[4]={false}
为了清晰起见?@Caleth,是的,我们可以这样做。@Caleth因为它不增加清晰性,它会增加混乱。可以使用
bool isOdd[4]={}
隐式地初始化整个数组,使用
false
bool isOdd[4]={false,false,false,false};
来显式初始化数组。现在人们的印象是
bool isOdd[4]={true};
会用所有
true
来初始化数组,但事实并非如此。@nwp说得好。我主要是问“为什么int?”。任何==true的东西都是愚蠢的