У меня проблема с c как вот так: У меня проблема в коде ниже. Проблема в том, что я делаю некоторую добавочную часть после того, как и if conditions
break.And, что добавление повторяется во время цикла до count>0
Проблема в том, что я поставил фигурные скобки для цикла, а затем повторяет часть внутри фигурных скобок, пока это условие не является ложным. Buti должен выполнить добавление, которое выглядит следующим образом: У нас есть данные массива [i] .freq = {0,1,2,3,4,5} и данные [i] .next представляет следующий член для добавления. Предположим, что я добавляю 0 и 1, сначала я получил «1» в результате, и я поместил результат в последний индекс моего массива, вроде этого ({0 1 2 3 4 5 1}) теперь 0 и 1 не могут быть добавлены, потому что они (я не должен повторять добавление на тех же элементах), поэтому в следующий раз добавление будет находиться между последним элементом индекса и наименьшим элементом перед последним элементом (но не с теми элементами, которые уже добавлены). поэтому здесь добавление будет находиться между «1» в последнем индексе + наименьший элемент в праве на него, который равен «2» Обратите внимание, что мы не принимаем значения 0 и 1, потому что они уже добавлены, так же, как это не будет добавляется в следующий раз, потому что добавляется на этот раз и их добавление будет {0 1 2 3 4 5 1 3}
, мы должны повторить то же самое, пока не осталось & элемента.для и если условие дает неожиданный результат
data[data_size].freq=data[i].freq+data[p].freq; // here i add the first 2 elements "0" and "1" in the example i given below.
int count=5;
do
{
for(i=0;data[i].next!=-1;i=data[i].next)//the problem is here if i put bracesit dont't do the ask which i expect it to do.
if(data[data[i].next].freq>data[data_size].freq && data[data[i].next].flag==0)
break;
data[data_size+1].freq= data[data_size].freq+ data[data[i].next].freq;
data[data_size].next=data[i].next;
data[i].next=data_size;
data_size++;
if(data[data[i].next].freq<data[data_size].freq && data[data[i].next].flag==0)
break;
data[data_size+1].freq= data[data_size].freq + data[i].freq
data[data_size].next=data[i].next;
data[i].next=data_size;
data_size++;
count--;
} while(count>0)
может любой, пожалуйста, помогите мне в проектировал код для того, что я хочу достичь.
Форматирование кода - это находка. – Bucket
Какой выход? – arunb2w
ПОЖАЛУЙСТА, правильно отформатируйте свой код. Это не конкурс IOCCC. – OldProgrammer