首页 > 解决方案 > 如何输出数组的元素(在奇数位置,偶数位数为奇数?

问题描述

如果我有 4 个元素,按以下顺序:4 10 2546 和 100、4 和 2546 在奇数位置,4 有 1 个偶数位,2546 有 3 个偶数位,所以输出应该是“4 2546”,但是我的程序只有输出“0 0”,我认为这是因为while循环,但我不知道如何修复它。

#include <iostream>

using namespace std;

int main()
{
    int n, evenDigits = 0, r, x;

    cout << "How many elements?\n";
    cin >> n;

    int* v = new int[n];

    for(int i=0; i<n; i++)
        cin >> v[i];

    for(int i=0; i<n; i=i+2){

        evenDigits = 0;
        x = v[i];

        while(x != 0){
            r = x % 10;
            if(r % 2 == 0)
                evenDigits++;
            x /= 10;
        }
        if(evenDigits % 2 == 1)
            cout << x << " ";

    }
    return 0;
}

标签: c++arrays

解决方案


你犯了一个小错字。

在 cout 语句中,您显示 x 的值,该值已被除法设为 0。

您需要显示存储在 v[i] 中的原始值。

因此,请将您的 cout 语句修改为:

cout << v[i] << " ";

推荐阅读