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

Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив - C++

Восстановить пароль Регистрация
 
Kokocikful
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 24
13.06.2013, 14:22     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив #1
Условие: дано массив размера N. Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив. У меня массив есть, нужна помощь со вставкой 0 перед элементами и перезапись. Вот кусок программы :
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
#include <iostream>
#include <conio.h>
#include <ctime> // в ней функция time
#include <windows.h>
char bufUA[256];
char* UA(const char* text) {
      CharToOem(text, bufUA);
      return bufUA;
      }
using namespace std;
int main()
{
    srand(time(NULL)); // Инициализируем генератор случайных чисел.
    int n = 0;
    cout << "Vvedite razmenost' massiva"<<endl;
    cin >> n; // Считываем с клавиатуры n
    int **a = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [n]; // Создаем элементы
    }
    // А дальше работа как с обычным массивом. 
    cout << "Massiv"; // Вывести элементы на консольку
    for (int i = 0; i < n; i++)
    {
        cout<<endl;
 
        for (int j = 0; j < n; j++)
        {
            a[i][j] = rand() % 10; // Каждый элемент случайному числу от 0 до 9
            cout << a[i][j] << " "; // Вывести элементы на консольку
        }
        cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
    }
 
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2013, 14:22     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив
Посмотрите здесь:

Удалить элементы с заданным значением, добавить перед каждым четным элементом 0 C++
C++ Однонаправленный связанный список (Вставить новый узел с нулевым значением перед первым отрицательным элементом...)
C++ Перед каждым положительным значением массива вставить элемент с нулевым значением
Вставить перед каждой серией массива элемент с нулевым значением. C++
C++ Функция, которая вставляет перед каждым отрицательным элементом элемент с нулевым значением
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
13.06.2013, 14:26     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив #2
Цитата Сообщение от Kokocikful Посмотреть сообщение
char bufUA[256];
char* UA(const char* text) {
* * * CharToOem(text, bufUA);
* * * return bufUA;
* * * }
а это тебе зачем?
Kokocikful
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 24
13.06.2013, 14:32  [ТС]     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив #3
Украинские буквы
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
13.06.2013, 14:51     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив #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
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <conio.h>
#include <ctime> // в ней функция time
 
 
using namespace std;
int main()
{
    srand(time(NULL)); // Инициализируем генератор случайных чисел.
    int n = 0;
    cout << "Vvedite razmenost' massiva"<<endl;
    cin >> n; // Считываем с клавиатуры n
    int **a = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [n]; // Создаем элементы
    }
    // А дальше работа как с обычным массивом. 
    cout << "Massiv"; cout << "\n";// Вывести элементы на консольку
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            a[i][j] = rand() % 10; // Каждый элемент случайному числу от 0 до 9
            cout << a[i][j] << " "; // Вывести элементы на консольку
        }
        cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
    }
 cout <<"\n\n";
 cout << "Answer = \n";
   for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << a[i][j]<< " ";
            if (a[i][j]>0) cout << "0 ";
        }
        cout << endl; 
    }
    getch();
    return 0;
}
Добавлено через 9 минут
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
#include <iostream>
#include <conio.h>
#include <ctime> // в ней функция time
using namespace std;
int main()
{
    srand(time(NULL)); // Инициализируем генератор случайных чисел.
    int n = 0;
    cout << "Vvedite razmenost' massiva"<<endl;
    cin >> n; // Считываем с клавиатуры n
    int **a = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [n]; // Создаем элементы
    }
    // А дальше работа как с обычным массивом. 
    cout << "Massiv"; cout << "\n";// Вывести элементы на консольку
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            a[i][j] = rand() % 10; // Каждый элемент случайному числу от 0 до 9
            cout << a[i][j] << " "; // Вывести элементы на консольку
        }
        cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
    }
    int **mas = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
    {
        mas[i] = new int [n]; // Создаем элементы
    }
    // А дальше работа как с обычным массивом. 
 cout <<"\n\n";
 cout << "Answer = \n";
   for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (a[i][j]>0) {cout << "0 ";
            cout << a[i][j]<< " ";
        }
        cout << endl; 
    }
 
    getch();
    return 0;
}
Добавлено через 53 секунды
1 вариан - после цыфр вставка 0
2 вариан - перед цыфрой вставка 0

Добавлено через 1 минуту
Цитата Сообщение от newyork7776 Посмотреть сообщение
а что записивать в остальние ячейки?
Ответ пожалуста
Kokocikful
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 24
13.06.2013, 20:00  [ТС]     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив #5
Ничего, просто в другой массив переместить числа уже с нулями перед ними(где нужно)
Kokocikful
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 24
13.06.2013, 20:24  [ТС]     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив #6
Цитата Сообщение от newyork7776 Посмотреть сообщение
ответом может быть и не матрица а просто цыфри.Так как может быть с строке все елементы + а некоторый -
а что записивать в остальние ячейки?
Ответ пожалуста
Привет еще раз, 1 вариант рабочий, а во втором не перед каждым элементом ставить 0., только первую строку обрабатывает, до второй не доходит
Вот скрин работы прогограммы :
Миниатюры
Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 00:34     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив
Еще ссылки по теме:

C++ Удалить из списка элемент перед каждым элементом со значением 3
Перед элементом массива с порядковым номером K вставить новый элемент с нулевым значением C++
C++ Перед каждым положительным элементом массива вставить нулевой элемент

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

Или воспользуйтесь поиском по форуму:
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
14.06.2013, 00:34     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив #7
У меня вот нормально
Миниатюры
Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив  
Yandex
Объявления
14.06.2013, 00:34     Перед каждым положительным элементом массива вставить элемент с нулевым значением, перезаписать эти элементы во второй массив
Ответ Создать тему
Опции темы

Текущее время: 13:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru