给定数字分隔成数组元素,如何在int中重新组合数字?

时间:2015-03-15 03:00:32

标签: c++

好的我想改变int tab [4] = {1,2,3,4}的数量;到1234号,我的代码有什么问题?它显示了我1232

int main()
{
    int iloscliczb = 4;
    int tab[4] = {1, 2, 3, 4};
    int j = 10;
    int zmienna = 0;


    for( int z = 1, i = 0, k = 2; z < iloscliczb; z++, i++, k++)
    {
        zmienna = zmienna + ( tab[iloscliczb - k] *  j );
        j = pow(10, z+1);
    }

    zmienna = zmienna + ( tab[iloscliczb - 1] );
    cout << zmienna << endl;

    return 0;
}

2 个答案:

答案 0 :(得分:1)

我认为你已经过度复杂了。从0开始,做10 ^((n-1)-i)的幂。像这样......

int n = 4; // the number of elements in the arr.
int sum = 0;
for(int i = 0; i < n; i++)
    sum += (arr[i] * pow(10, (n-1)-i)); // here (n-1) = 3
std::cout << sum;

答案 1 :(得分:0)

更容易 - 更有效率,因为你可以放弃pow()调用 - 在数组中向后工作:

int sum = 0;
for(int i = std::extent<decltype(arr)>::value; i--; )
    (sum *= 10) += arr[i];
std::cout << sum << '\n';