Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
#1

Дан целочисленный массив, нужно исключить из него все нули - C++

06.02.2010, 21:14. Просмотров 800. Ответов 9
Метки нет (Все метки)

Дан целочисленный массив, нужно исключить из него все нули. Если нулей нет-написать "сжатие невозможно". Составить динамический массив и ввод элементов я смогу. А как реализовать поиск 0 и их удаление?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2010, 21:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан целочисленный массив, нужно исключить из него все нули (C++):

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
Помогите пожалуйста написать программу. Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
Помогите пожалуйста написать программу: Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

Дан массив. Удалить из него нули и после каждого числа, оканчивающегося на 5, вставить 1 - C++
Задание: Дан массив. Удалить из него нули и после каждого числа, оканчивающегося на 5, вставить 1. Нули из массива удалила, и теперь...

дан целочисленный массив заменить в нём все элементы - C++
. Дан целочисленный массив X. Заменить в нем все элементы, меньшие 5 числом 111.(маасивы вообще не понимаю как решать(

Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их последние вхождения - C++
#include <iostream> #include <ctime> using namespace std; int main() { setlocale(LC_ALL, "rus"); int n, i; time_t t;...

Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения. - C++
Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
06.02.2010, 21:45 #2
"Забрызгивая фреймы по бокам пеной" Нельзя из массива удалить элементы!
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
06.02.2010, 21:55  [ТС] #3
Darky, да знаю я. Даже самый поздний ламер это знает. Вот дословно цитирую из задания: "Выполнить сжатие массива, выбросив из него нулевые элементы". Язык у меня Си.
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
06.02.2010, 21:58 #4
Ну я бы предложил не "выбрасывать нулевые элементы", т.к. это фактически идентично выражению "выбросить из числа цифру", а просто если элемент не равен нулю, то присваивать второму массиву значение этого элемента.
C
1
2
3
4
5
6
7
8
9
int q=0;
for (int i=0;i<N;i++)
{
  if (A[i]!=0)
  {
    B[q]=A[i];
    q++;
  }
}
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
06.02.2010, 22:25  [ТС] #5
да, я тоже вот пока купался подумывал над этим =))

Добавлено через 12 минут
Вот пробую вот так склепать, но что-то не выходит. Подскажите, что не так!?

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
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int *a, i, n, q, A,B;
 
    printf("Enter n: ");
    scanf("%d", &n);
 
    a = (int *) malloc(sizeof(int) * n);
    for(i = 0; i < n; i++) {
        printf("array[%d]: ", i);
        scanf("%d", &a[i]);
    }
    for (int i=0;i<N;i++)
    {
  if (A[i]!=0)
  {
    B[q]=A[i];
    q++;
  }
}
printf("%d",q);
}
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
06.02.2010, 22:29 #6
исходя из слов "сжатие невозможно" в задании предполагаю, что имеется ввиду просто сжать массив, "удалив" из него нули. например:

C++
1
int a[] = {1, 33, 0, 4, 77, 3, 0, 0, 55, 0, 41, 16, 0, 100};
после сжатия должны получить:

1, 33, 4, 77, 3, 55, 41, 16, 100, 0, 0, 0, 0, 0

можно для комфорта указать еще в результате количество ненулевых элементов массива.
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
06.02.2010, 22:29 #7
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
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *a,*b,i,n,q=0;
 printf("Enter n: ");
 scanf("%d", &n);
  a = (int *) malloc(sizeof(int) * n);
  b = (int *) malloc(sizeof(int) * n);
  for(i=0;i<n;i++)
  {
    printf("array[%d]: ", i);
    scanf("%d", &a[i]);
  }
  for (int i=0;i<n;i++)
  {
    if (a[i]!=0)
    {
      b[q]=a[i];
      q++;
    }
  }
  for (int i=0;i<q;i++)
    printf("%d ",b[i]);
}
1
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
06.02.2010, 22:36  [ТС] #8
Darky, ругается на синтаксис, но я думаю, то он перегрелся =)) если что в инсте подправлю, спасибо большое!
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
14.02.2010, 19:08  [ТС] #9
Блин, в инсте та же проблема. Не могу запустить, куча ошибок. Помогите!
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
15.02.2010, 11:21 #10
Подправленная версия Darky.
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
32
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main(int argc, char* argv[])
{
   int *a, *b, i, n, q = 0;
   printf("Enter n: ");
   scanf("%d", &n);
   a = calloc(n, sizeof(int));
   b = calloc(n, sizeof(int));
   for(i = 0; i < n; i++)
   {
      printf("array[%d]: ", i);
      scanf("%d", &a[i]);
   }
   for (i = 0; i < n; i++)
   {
      if (a[i] != 0)
      {
         b[q] = a[i];
         q++;
      }
   }
   for (i = 0; i < q; i++)
      printf("%d ", b[i]);
   printf("\n");
   free(a);
   free(b);
   getch();
   return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2010, 11:21
Привет! Вот еще темы с ответами:

Дан целочисленный массив размера N. Удалить из массива все одина- ?ковые элементы, оставив их первые вхождения - C++
Всем привет у меня тут проблемка, может кто подскажет ?Дан целочисленный массив размера N. Удалить из массива все одина- ?ковые...

Дан целочисленный массив размера N. Вывести вначале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов - C++
Дан целочисленный массив размера N. Вывести вначале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов, а...

Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные числа в порядке убывания их индексов, а также их количество K - C++
Помогите написать программу. Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные числа в порядке убывания...

Дан массив. Выберите из него все элементы, которые встречаются в массиве наибольшее число раз - C++
СРОЧНО!!! ПОМОГИТЕ ПОЖАЛУЙСТА,ОЧЕНЬ НУЖНО!!! ЗАРАНИЕ БЛАГОДАРЮ!) ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.02.2010, 11:21
Ответ Создать тему
Опции темы

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