如何将两位数字从数组转换为一个整数到新数组?

例如:1245678933658到[12,45,67,89,33,65,80]如果最后一个为奇数,则将0加到最后一个。

我的尝试是:

new_array[i]=digits[i]*10+digits[i++]*10/10;

最佳答案

是否必须是“单一代码”,还是还允许使用更具可读性的代码?请尝试以下操作:

const char* digits = "12456789336581";
int digitIndex=0;
int numbers[100];
int currentNumberIndex = 0;
int currentNumber = 0;
while (digits[digitIndex]) {
    currentNumber *=10;
    currentNumber += digits[digitIndex] - '0';
    digitIndex++;

    if ( (digitIndex)%2 == 0)  // two digits handled?
    {
        numbers[currentNumberIndex++] = currentNumber;
        currentNumber = 0;
    }
}

// handle the case that last number contained just one digit:
if (digitIndex%2) {
    currentNumber *=10;
    numbers[currentNumberIndex++] = currentNumber;
}

for (int i=0; i < currentNumberIndex; i++)
    printf("number[%d]: %d\n", i, numbers[i]);

关于c - C将两位数字转换为一个整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41622362/

10-11 18:19