首页 > 解决方案 > 如何使用数组解决这个问题?

问题描述

我是编程新手,有没有办法解决这个问题:

从用户那里获取 10 个整数输入并打印以下内容

  1. 正数的个数。
  2. 负数的个数。
  3. 奇数个数。
  4. 偶数个数
#include <iostream>
using namespace std;

int main()
{
    int numArray[10];

    cout<<"Enter Number :";
    for(int i=0; i<10; i++)
    {
        cin>>numArray[i];
    }

    for(int i=0; i<numArray[i]; i++)
    {
        if(numArray[i]>0)
        {
            cout<<"Positive Number "<<numArray[i] <<endl;
        }
        else
        {
            cout<<"Negative Number "<<numArray[i]<<endl;
        }

        if(numArray[i]%2==0)
        {
            cout<<"Odd number "<<numArray[i]<<endl;
        }
        else 
        {
            cout<<"even number "<<numArray[i]<<endl;  
        }
    
    }

    return 0;  
}

标签: c++arrays

解决方案


你可以在没有数组的情况下做到这一点,但为了清楚起见,我只会坚持你的初衷。

#include <iostream>
#include <array>
using namespace std;

int main()
{
    array<int, 10> numArray; //an array of ints, size 10. this is CPP style array, it is 'safer' than C-style array. (someone correct me)

    //get your 10 inputs.
    cout << "Enter Number :";
    for(size_t i = 0; i < numArray.size(); i++)
    {
        cin >> numArray[i];
    }

    int positive_count = 0;
    int negative_count = 0;
    int even_count = 0;
    int odd_count = 0;
    
    //loop thru your 10 inputs, increment counters accordingly.
    for(size_t i = 0; i < numArray.size(); i++)
    {
        
        if (numArray[i] < 0)
        {
            negative_count += 1;
        }
        if (numArray[i] > 0)
        {
            positive_count += 1;
        }

        if (numArray[i] % 2 == 0)
        {
            even_count += 1;
        }
        else 
        {
            odd_count += 1;
        }
    
    }
    
    cout << "Positive Number " << positive_count << endl;
    cout << "Negative Number " << negative_count << endl;
    
    cout << "even number " << even_count << endl;  
    cout << "Odd number " << odd_count << endl;
    
    return 0;
   
}

推荐阅读