Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 26.02.2011
Сообщений: 48
1

как удалить нулевой элемент из массива?

14.03.2011, 18:04. Показов 2088. Ответов 10
Метки нет (Все метки)

Помогите!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2011, 18:04
Ответы с готовыми решениями:

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

Удалить первый нулевой элемент массива и добавить после каждого чётного элемента особый элемент
Здравствуйте! Имеется такая задача: 1) Сформировать одномерный массив целых чисел, используя...

Удалить нулевой элемент массива
$i=$_GET; unset($_SESSION); $_SESSION=array_values($_SESSION); Почему таким вариантом не...

Удалить первый нулевой элемент массива
Здравствуйте.Объясните пожалуйста,как удалять элемент в массиве,если он к примеру, равен 0.То есть...

10
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 478
15.03.2011, 11:56 2
начал вчера заниматься вопросом, и наткнулся на непонятную для себя багу или фичу.
не могу пока понять от куда ноги растут, мож кто посмотрит ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i,j;
const Lines=100,Columns=2;
int mas[Lines][Columns];
int array[Lines][Columns];
 for (i=0;i<Lines;i++){
    for (j=0;j<=Columns;j++){
    mas[i][j]=random(5);
    array[i][j] = 999;
  // Memo1->Lines->Add(mas[i][j]);
  Memo2->Lines->Add(mas[i][j]);
     }
    }
 
  AnsiString aaa;
  //AnsiString bbb;
 
 Memo1->Clear();
 for (i=0;i<=Lines;i++){
    for (j=0;j<=Columns;j++){
        if(mas[i][j]!=0)
 {
          array[i][j]=mas[i][j];
      Memo1->Lines->Add(mas[i][j]); //для визуализации процеса заполняю
      Label1->Caption = i; // можно и не делать, просто проверял до какой строки доходит счетчик
              
 }
 }
 }
 }
и в мемо получаю какуюто лабудень... первый элемент мемо1 становится 999 <--- откуда я не понимаю?
и 3 последних элемента получается какаято фигня... тоже немогу понять откуда.


пробовал трасировкой, пройтись построчно. Все заполняеся как по нотам. и вот как только проходит последний цыкл и завершается обработка баттона, в мас[1][1] & mas[1][2] перетираются на совершенно левые значения.
0
Вложения
Тип файла: rar Projects.rar (30.7 Кб, 9 просмотров)
0 / 0 / 1
Регистрация: 26.02.2011
Сообщений: 48
15.03.2011, 13:06  [ТС] 3
у меня она вообще даже не компилируется.
0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 478
15.03.2011, 13:33 4
нафиг компилить если есть готовый проект ?
0
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
15.03.2011, 13:42 5
обьясни почему в первом случае ты заполняеш масив в цыкле
for (i=0;i<Lines;i++){
for (j=0;j<=Columns;j++)
а потом for (int i=0;i<Lines;i++){
for (int j=0;j<Columns;j++)

исправь(убери =) и все как часы заработает
1
LK
Заблокирован
15.03.2011, 13:54 6
и в мемо получаю какуюто лабудень... первый элемент мемо1 становится 999 <--- откуда я не понимаю?
ну и тут все правильно - в первом цыкле ты приваиваешь значение
C++
1
array[i][j] = 999;
потом это же значение во втором цикле присваиваешь mas:
C++
1
array[i][j]=mas[i][j];
и в первой итерации заносишь его в мемо:
C++
1
Memo2->Lines->Add(mas[i][j]);
0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 478
15.03.2011, 14:06 7
Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
обьясни почему в первом случае ты заполняеш масив в цыкле
for (i=0;i<Lines;i++){
for (j=0;j<=Columns;j++)
а потом for (int i=0;i<Lines;i++){
for (int j=0;j<Columns;j++)

исправь(убери =) и все как часы заработает
чорд... дето я недопонял механики работы программы, но без пробелов пашет как милое.

Добавлено через 3 минуты
Цитата Сообщение от LK Посмотреть сообщение
потом это же значение во втором цикле присваиваешь mas:

C++
1
array[i][j]=mas[i][j];
а помоему наоборот тут кажись значения из mas[i][j] заносятся в аррай и тем самым затерают 999
0
LK
Заблокирован
15.03.2011, 14:09 8
и для чего
C++
1
array[i][j]=mas[i][j];
, если array дальше нигде не используется ?
0
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
15.03.2011, 14:10 9
for (j=0;j<=Columns;j++)
ты выходишь за границы масива, напиши for (j=0;j<Columns;j++)
и все заработает

LK ты уверен в том что написал, а то по моему не в тему
0
LK
Заблокирован
15.03.2011, 14:11 10
Цитата Сообщение от koldun Посмотреть сообщение
а помоему наоборот тут кажись значения из mas[i][j] заносятся в аррай и тем самым затерают 999
да , читал, как обычно - слева направо .
0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 478
15.03.2011, 14:53 11
Цитата Сообщение от LK Посмотреть сообщение
и для чего
C++
1
array[i][j]=mas[i][j];
, если array дальше нигде не используется ?
я его еще не успел использовать, столкнулся с проблемой, и про него забыл.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2011, 14:53

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Удалить нулевой элемент из двумерного массива
Помогите сделать так чтоб нулевой элемент сдвигался, а потом его удалить. Program lab; var...

Удалить из массива нулевой элемент, передвинув на его место следующие элементы
Удалить из массива А(п) нулевой элемент передвинув на их место следующие элементы без нарушения...

Удалить все строки двумерного массива, в которых есть хотя бы один нулевой элемент
Как реализовать двумерный массив с помощью ДСЧ и вручную и выполнить это действия? 2)Удалить все...

Удалить нулевой элемент
Дан массив с большим количеством нулевых элементов. Заменить в нем кажлую группу из нечетного...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.