检查阵列位置

Checking the array position

本文关键字:位置 阵列 检查      更新时间:2023-10-16

我正在做的程序中,我正在检查,如果数组是平衡或不像数组int a5[] = {2, 1, 4, 3}; // balance array because i got even number on even position so program return 1 int a5[] = {3, 1, 4, 3}; // un balance array because i got odd number on even position so program return 0

这是我正在尝试的程序

int araay(int arg[], int length);
int main()
{
    int a6[] = {3, 3, 4, 4};
    int a7[] = {2, 2, 3, 4};
    int a8[] = {4, 1, 2, 3};
    int a9[] = {1, 1};
    araay (a7,sizeof(a7));
}
int araay (int arg[], int length)
{
    int sumEven = 0;
    int sumOdd = 0;
    for (int i=0; i<=length; i=i+2)
    {
        if (arg[i]%2 == 0)
        {
            sumEven++;
        }
        else
            sumOdd++;
    }
    for (int i=1; i<=length; i=i+2)
    {
        if (arg[i]%2 == 0)
        {
            sumEven++;
        }
        else
            sumOdd++;
    }
    return 0;   
}

作为返回值它总是返回00000每次

以下内容可能有所帮助:(http://ideone.com/NttqbY)

bool is_balanced(const std::vector<std::size_t>& v)
{
    for (std::size_t i = 0; i != v.size(); ++i) {
        if ((i % 2) != (v[i] % 2)) {
            return false;
        }
    }
    return true;
}

感谢大家的评论和帮助

这是我尝试过的

int araay(int arg[], int length);
int main()
{
    int a6[] = {3, 3, 4, 4};
    int a7[] = {2, 3, 2, 3};
    int a8[] = {4, 1, 2, 3};
    int a9[] = {1, 1};
    araay (a7,3);

}
int araay (int arg[], int length)
{
    int sumEven = 0;
    int sumOdd = 0;
    for (int i=0; i<=length; i+=2)
    {
        if (arg[i]%2 != 0)
        {
            cout<<"unbalanced"<<endl;
        //  return 0;
        }
        else
        {
            sumEven++;
        }
    }
    for (int i=1; i<=length; i=i+2)
    {
        if (arg[i]%2 == 0)
        {
            cout<<"unbalanced"<<endl;
            sumEven++;
        }
        else
        {
            sumOdd++;
        //  return 0;
        }
    }
    return 0;
}

但是@jarod的答案看起来更合适和简单

你可以这样做

#include <iostream>
int check(int arg[])
{
    for (auto i = 0; i < sizeof(arg); ++i)
    {
        if ((i % 2) != (arg[i] % 2))
        {
            return 0;
        }
    }
    return 1;
}
void main()
{
    int a[] = { 1, 2, 3, 4 };
    int b[] = { 2, 3, 4, 5 };
    int c[] = { 2, 2, 3, 3 };
    std::cout << "a = " << check(a) << std::endl;
    std::cout << "b = " << check(b) << std::endl;
    std::cout << "c = " << check(c) << std::endl;
    getchar();
}