2014-12-08 5 views
1

Мой код является слишком длинным, сложным и утомительным для меня, чтобы разместить его здесь, но предположим, что у вас было что-то вроде этого:языка C, группировка элементов в массиве

#include <stdio.h> 

char myArray[3000]={3,1,3,1,2,5,1,1,7,0,1,3,0,1,2,0,1,6,0,1,8,9,1,0,0,1,4,3,1,7}; 

Предположим, что я хотел сделать новый массив, который берет две последовательные цифры из приведенного выше списка элементов.

индексы 2-6 из myArray содержат (3,1,2,5), как я могу получить свой новый массив для группировки элементов и сохранения элементов 2-6 как (31, 25).

Я новичок в программировании, и я не нашел эффективного способа сделать это.

+1

перебрать массив и вычислить значение, которое принадлежит в новом массиве. Затем выполните задание. –

+0

Спасибо за помощь :) Мне нужны два итеративных элемента? – NS1094

+1

Если значение, которое входит в 'new_array [i]', зависит только от i и значений myArray, вам просто нужно перебирать индекс нового массива. –

ответ

3

Простейшее способа думать об этом:

int newArray[2]; 
newArray[0] = myArray[2]*10 + myArray[3]; 
newArray[1] = myArray[4]*10 + myArray[5]; 

Если вы хотите что-то более общее ...

#define NEW_ARRAY_SIZE 5 
int newArray[NEW_ARRAY_SIZE]; 
int offset = 2; 
int i = 0; 
for (i = 0; i < NEW_ARRAY_SIZE; ++i) 
{ 
    newArray[i] = myArray[offset+2*i]*10 + myArray[offset+2*i+1]; 
} 
+0

Mine - это массив символов, поэтому мне не нужны части «* 10», только для добавления первого символа в следующий, спасибо. – NS1094