Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 19
1

Сжатие массива. Не могу завершить код

22.12.2014, 23:05. Показов 591. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Идея в том, что дается 2 строчки. В первом рандомные числа. А во втором должна быть сжатая первая строчка. А именно, если в 1 строчке в каком-нить столбце встречается нуль, то его проигнорировать и записать следующий элемент таблицы.
Например
Если рандом получился таким: 5 5 4 0 4 5 6 0 3 2
то результат должен быть таким: 5 5 4 4 5 6 3 2

я написал код:

C++
1
2
3
4
5
6
void __fastcall TForm1::Button4Click(TObject *Sender)
{
float Mas[1000], ColCount;
ColCount=StrGr->ColCount;
for (int i=1;i<ColCount;i++) {Mas[i]=StrToFloat(StrGr->Cells[i][1]);}
for (int i=1;i<ColCount;i++) if (Mas[i]!=0) {StrGr->Cells[i][2]=Mas[i];}
но беда в том, что я не могу догадаться, как записывать следующий элемент. У меня получается вот так:
Рандом: 4 6 2 0 5 2 0 2 5
Итог: 4 6 2 - 5 2 - 2 5
, где "-" это пропуск. т.е. в строке ничего не стоит.

а как написать такой код, чтобы записывалась следующая цифра?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2014, 23:05
Ответы с готовыми решениями:

Не могу завершить процесс
Доброго времени суток, помогите. вот так завершаю процесс HANDLE hProcess; BOOL pid; ...

Не могу завершить процесс
Не могу завершить процесс в windows 7. При попытке убить процесс в диспетчере задач ничего не...

Не могу завершить ввод данных
Не могу завершить ввод данных в программе, т.к после ввода дня и месяца программа выкидывает из...

Не могу завершить поток (Thread)
Имеется новый поток, не могу его завершить, подчёркивает &quot;Worker&quot; в &quot;private void StopThread()&quot;...

1
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
23.12.2014, 15:13 2
Цитата Сообщение от Siversky Посмотреть сообщение
а как написать такой код, чтобы записывалась следующая цифра?
Вычитайте из переменной-счетчика второго цикла единицу, при нахождении числа, которое нужно удалить.

C++
1
for (int i=1, j=1;i<ColCount;i++) if (Mas[i]!=0) {StringGrid1->Cells[j][2]=Mas[i];j++;}
1
23.12.2014, 15:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2014, 15:13
Помогаю со студенческими работами здесь

Помогите завершить код
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; void main() { double*m,mmax; int k,n,i; int schot=0;...

Не могу корректно завершить thread в Visual C++
Для завершения я использую СEvent однако при выполнении функции ...

Не могу придумать, как завершить ввод данных
В условии задачи нужно вводить начало и конец отрезка (координаты) Каждый последующий раз...

Не могу завершить поток с бесконечным циклом (Сокет сервер)
Привет, в потоках полный новичок, как впрочем и в сокетах, надо реализовать сокет сервер, так вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru