2014-11-11 3 views
0

У меня есть массив, который хранит число каждого элемента.Вложенный цикл с массивами с повторяющимися номерами

int total[5] = {2,3,4,5,6} 
int num = 5; //array total has 5 elements 

Это означает, что у нас есть 2 элемента 0, 3 элемента 1 в нашем исходном массиве. Мы не беспокоимся об исходном массиве, так как у меня уже есть код для сохранения количества элементов.

мне нужен вложенное цикл, который создает новый массив, который выглядит следующим образом:

array[0] = 1; 
array[1] = 1; 

array[2] = 5; 
array[3] = 5; 
array[4] = 5; 

array[5] = 9; 
array[6] = 9; 
array[7] = 9; 
array[8] = 9; 

и так далее. То есть, мы сохраняем значение в нашем новом массиве столько же, сколько его значение в массиве «total». Значения 1,5,9 и т. Д. Хранятся в массиве, называемом элементом. У меня есть что-то вроде этого:

Может кто-нибудь помочь мне разобраться в этом?

+2

В чем вопрос? – Barry

+2

Насколько я понимаю, вы код должен работать. Каков ваш вопрос? – Antwane

+0

_ «Это означает, что у нас есть 2 элемента 0, 3 элемента 1 в нашем исходном массиве». «А? –

ответ

0

Вам необходимо отслеживать количество элементов:

int sum = 0; 
for (int i = 0; i < num; i++){ 
    for (int j = 0; j < total[i]; j++){ 
     array[sum + j] = element[i]; 
    } 
    sum += total[i]; 
} 
1

Простое решение (хотя и не обязательно элегантные) должен сделать следующее:

int count = 0; 
for (int i = 0; i < num; i++){ 
    for (int j = 0; j < total[i]; j++){ 
     array[count] = element[i]; 
     count++; 
    } 
} 

, то вам не нужно беспокоиться о том, чтобы попытаться выяснить, на какую позицию вы находитесь для массива.

Смежные вопросы