Non so che carattere abbia il tuo problema, ma puoi notare come tu possa scrivere quel numero come:
67000000 + 780000 + 8900 + 90
cioè il numero di due cifre più tanti zeri quanti sono i numeri che seguono:
codice:
#include <stdio.h>
#include <stdint.h>
#include <math.h>
#include <stdlib.h>
int main()
{
uint8_t a[12] = {23, 45, 67, 78, 89, 90, 33, 44, 55, 66, 77, 88};
uint32_t b = 0;
int indexes[4] = { 2, 3, 4, 5 };
int size = 4;
int i;
int j = 0;
uint32_t x;
for(i = 0; i < size; i++)
{
x = (uint32_t)pow(10.0, (double)j);
b += x * a[indexes[size-i-1]];
j+=2;
}
printf("%d\n", b);
return 0;
}
Se noti, all'interno del ciclo colloco i vari numeri nella posizione esatta grazie alla moltiplicazione con le potenze del 10.
Questo però può essere fatto se tutti i numeri sono di due cifre. Se i numeri hanno cifre variabili, devi calcolare quante cifre hanno e adeguarti di conseguenza.