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

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

Войти
Регистрация
Восстановить пароль
 
Ferz137
1 / 1 / 0
Регистрация: 08.01.2014
Сообщений: 17
#1

Написать программу, «сжимающую» целочисленный массив - C++

08.01.2014, 15:50. Просмотров 481. Ответов 7
Метки нет (Все метки)

Не получается написать программу. Помогите, пожалуйста
Написать программу, «сжимающую» целочисленный массив A[10] так, чтобы оказались выброшенными нулевые элементы. Написать функции:
- Заполнения массива в диалоговом режиме.
– Вывода одномерного массива.
– Определения, имеются ли в массиве нулевые элементы.
– Сжатия одномерного массива. При реализации функции дополнительного массива заводить.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 15:50     Написать программу, «сжимающую» целочисленный массив
Посмотрите здесь:

Дан целочисленный массив M*N.Разработать программу нахождения суммы особых элементов массива - C++
Задача: Дан целочисленный массив M*N.Разработать программу нахождения суммы особых элементов массива. Особым считается элемент массива в...

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

Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент - C++
Помогите преобразовать код из языка С# в С++. Занимался разбором задачи на языке С++. Вот условие задачи: Дан целочисленный массив...

Дан целочисленный массив размером N. Преобразовать массив, увеличив длину каждой серии на один элемент - C++
#include "stdafx.h" #include <iostream> using namespace std; int main() { int n; int k=0; int p=0; int l=0; int...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
08.01.2014, 16:08     Написать программу, «сжимающую» целочисленный массив #2
Сжатия одномерного массива.
Это как ?
Ferz137
1 / 1 / 0
Регистрация: 08.01.2014
Сообщений: 17
08.01.2014, 16:10  [ТС]     Написать программу, «сжимающую» целочисленный массив #3
Сжать-выбросить нулевые элементы. Я так понял.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
08.01.2014, 16:29     Написать программу, «сжимающую» целочисленный массив #4
Как то так
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
#include <iostream>
#include <algorithm>
 
void input(int & var)
{
  std::cout << "Input element : " << std::endl;
  std::cin >> var;
}
 
void output(int & var)
{
  std::cout << var << " ";
}
 
int main()
{   
 size_t SIZE;
 std::cout << "Input size array : " << std::endl;
 std::cin >> SIZE;
 
 int * array = new int[SIZE];
 
 std::for_each(array, array + SIZE, input);
 std::for_each(array, array + SIZE, output); std::cout << std::endl;
 
 std::for_each(array, std::remove(array, array + SIZE, 0), output); std::cout << std::endl;
 
  system("PAUSE");
  return 0;
}
Ferz137
1 / 1 / 0
Регистрация: 08.01.2014
Сообщений: 17
08.01.2014, 16:37  [ТС]     Написать программу, «сжимающую» целочисленный массив #5
Спасибо,но мне желательно сделать эту программу без библиотеки алгоритмов, а через циклы for и while. Там задача на ввод и вывод массивов с удалением элемента если он равен нулевому-я могу ввести,подредактировать и вывести,но удалить элемент не знаю как если он не соответствует условию.
TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
08.01.2014, 16:37     Написать программу, «сжимающую» целочисленный массив #6
main.cpp:
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 <iostream>
#include <vector>
using namespace std;
 
int main () {
    int array[] = { 27,10,15,12,0,30,11,54,0,33 };
    vector<int> A(array, array + sizeof(array) / sizeof(int) );
 
    // print A
    cout << "A: ";
    for(vector<int>::iterator it=A.begin(); it!=A.end(); it++)
        cout << (*it) << " ";
    cout << endl;
 
    // delete null
    for(vector<int>::iterator it=A.begin(); it!=A.end(); it++)
        if( (*it) == 0 )
            it=A.erase(it);
 
    // print A
    cout << "A: ";
    for(vector<int>::iterator it=A.begin(); it!=A.end(); it++)
        cout << (*it) << " ";
    return 0;
}
output:
Код
A: 27 10 15 12 0 30 11 54 0 33 
A: 27 10 15 12 30 11 54 33
Ferz137
1 / 1 / 0
Регистрация: 08.01.2014
Сообщений: 17
08.01.2014, 16:56  [ТС]     Написать программу, «сжимающую» целочисленный массив #7
А здесь целочисленные значения сразу в программу вводятся как я понял? Или через консоль? У меня что-то ошибки выдаёт...

Добавлено через 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
#include <iostream>
#include <conio.h>
using namespace std;
    int main()
    {
        setlocale ( LC_All, "Russian");
        int A[10]
        cout <<" Заполнение массива:\n";
        for (int i = 0; i< 10 ; i++)
        {
            cout << Введите значение " << i << "элемента массива:";
                while (!(cin >> A[i]))
                { cin.clear();
            while (cin.get()!='\n');
            cout <<" Введите значение " << i << "элемента массива:";
            }
        }
        system ("cls");
        for (int i = 0; i<10; i ++)
            cout << " Исходный массив:\n";
        cout <<" A[ "<<i<<'] = "A[i]<< endl;
            _getch()
            return 0;
    }
Я вот на этом остановился. Не знаю как нулевые элементы выделить и удалить из массива,оставив без них...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2014, 17:21     Написать программу, «сжимающую» целочисленный массив
Еще ссылки по теме:

целочисленный массив X(n) - C++
ребят помогите пожалуйста, не могу сообразить В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный...

Целочисленный массив - C++
Ребят помогите разобраться. Вот само задание: Дан целочисленный массив А . Определить индекс столбца, в котором находится максимальное...

целочисленный массив - C++
в целочисленный массив, X(n) после каждого нечетного элемента вставить максимальный простой элемент этого же массива. Определить среднее...

Целочисленный массив - C++
По целочисленному массиву X(n) сформировать массив Y(m) , включив в него по убыванию k несовпадающих между собой наибольших элементов...


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

Или воспользуйтесь поиском по форуму:
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
08.01.2014, 17:21     Написать программу, «сжимающую» целочисленный массив #8
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <clocale>
 
void fillArray(int *array, size_t arraySize);
void printArray(int *array, size_t arraySize);
bool zeroInArray(int *array, size_t arraySize);
void zeroElementsDelete(int *array, size_t *arraySize);
 
int main()
{
    std::setlocale(0, "");
    const size_t arraySize(10);
    
    int array[arraySize];
    fillArray(array, arraySize);
    printArray(array, arraySize);
 
    if (zeroInArray(array, arraySize)) {
        size_t newArraySize(arraySize);
        zeroElementsDelete(array, &newArraySize);
        printArray(array, newArraySize);
    } else {
        std::cout << "В массиве нет нулевых элементов!" << std::endl;
    }
    
    std::system("pause");
    return 0;
}
 
void fillArray(int *array, size_t arraySize)
{
    std::cout << "Заполните массив: " << std::endl;
    for (size_t i = 0; i < arraySize; i++) {
        std::cout << "Элемент №" << (i + 1) << ": ";
        std::cin >> *(array + i);
    }
}
 
void printArray(int *array, size_t arraySize)
{
    std::cout << "Массив: " << std::endl;
    for (size_t i = 0; i < arraySize; i++) {
        std::cout << *(array + i) << ' ';
    }
    std::cout << std::endl;
}
 
bool zeroInArray(int *array, size_t arraySize)
{
    for (size_t i = 0; i < arraySize; i++) {
        if (!(*(array + i)))
            return true;
    }
    return false;
}
 
void zeroElementsDelete(int *array, size_t *arraySize)
{
    size_t zeroCounter(0);
    for (size_t i = 0; i < *arraySize; i++) {
        if (!(*(array + i))) {
            zeroCounter++;
        } else {
            *(array + i - zeroCounter) = *(array + i);
        }
    }
    *arraySize -= zeroCounter;
}
Yandex
Объявления
08.01.2014, 17:21     Написать программу, «сжимающую» целочисленный массив
Ответ Создать тему
Опции темы

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