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

В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число - C++

Восстановить пароль Регистрация
 
Bob103
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 141
Завершенные тесты: 2
27.12.2015, 20:08     В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число #1
У нас нету времени,мне нужен кодЗабыл сказать,в двумерном массиве,элементы целые числа
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2015, 20:08     В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число
Посмотрите здесь:

C++ В заданной целочисленной матрице поменять местами столбец с номером 1 и последний из столбцов
C++ В заданной целочисленной матрице поменять местами столбец с номером 1 и последний из столбцов
C++ Найти все такие простые числа, не превосходящие заданного N, в троичной записи которых цифра 2, встречается заданное число раз
C++ Массивы. Вставить значение a перед всеми элементами, кратными а
C++ Дана последовательность целых чисел. Вставить новый элемент перед всеми четными элементами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gru74ik
Модератор
 Аватар для gru74ik
3118 / 1344 / 167
Регистрация: 20.02.2013
Сообщений: 3,809
Записей в блоге: 17
27.12.2015, 20:51     В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число #2
Bob103, используйте целочисленный вектор векторов.
Bob103
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 141
Завершенные тесты: 2
27.12.2015, 21:12  [ТС]     В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число #3
Вот максимум моих размышлений(может бред):
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> 
using namespace std;
int ** creat(int &n, int &m)
{cout <<"n="; cin >>n; cout <<"m="; cin » m ;
int **mas=new int *[2*n]; //определяем максимальное количество стр ок
for (int i=0; i<n;++i) mas[i]=new int [m]; 
for (int i=0; i<n; ++i)
for (int j=0; j<m; ++j){cout«"m as["«i«"]["«j«"]="; cin»mas[i][j];} 
return mas;}
void print (int **mas, int n, int m)
{for (int i=0; i<n; i++, cout«endl) 
for (int j=0; j<m; j++) cout<<mas[i][j)«"\t";} 
void deleteMas(int **mas, int n)
{for (int i=0;i<n; i++) delete [] mas[i]; 
delete [] m as;}
int main()
{int n, m, k;
int **a=creat(n,m); //создаем и заполняем матрицу а
int n2=2*n; //п- текущее количество строк, п2 -максимально возможное
print(a,n,m); //выводим первоначальный массив
cout«''k="; cin»k; //вводим номер строки для добавления
if (k<0 || k>n-1 ||n+1>n2) cout«"error”;
else {for (int i=n; i>k; -i) a[i]=a[i-1]; //выполняем сдвиг строк
++n; //увеличиваем текущее количество строк в массиве
a[k]=new int [m); //выделяем память под новую строку массива и заполняем ее
gru74ik
Модератор
 Аватар для gru74ik
3118 / 1344 / 167
Регистрация: 20.02.2013
Сообщений: 3,809
Записей в блоге: 17
27.12.2015, 21:24     В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число #4
Цитата Сообщение от Bob103 Посмотреть сообщение
Вот максимум моих размышлений
На данный момент Ваш код ужасен. Почитайте вот этот топик, чтобы было от чего оттолкнуться.

Добавлено через 3 минуты
В принципе, можете вместо вектора векторов попробовать использовать самодельный класс "Матрица". Не рискну предлагать Вам варианты из библиотеки Boost, хотя, возможно, такой выбор был бы весьма неплох.
Bob103
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 141
Завершенные тесты: 2
27.12.2015, 21:25  [ТС]     В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число #5
Спасибо
Bob103
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 141
Завершенные тесты: 2
28.12.2015, 08:20  [ТС]     В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число #6
Вот фрагмент моего кода, пожалуйста исправьте, если что не так. А то голова уже не соображает, не знаю как написать условие совпадение числа и элемента массива, начеркал бред
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
#include <iostream> 
using namespace std;
int ** creat(int &n, int &m)
{
    cout << "n="; cin >> n; cout << "m="; cin >> m;
    int **mas = new int *[2 * n]; //определяем максимальное количество стр ок
    for (int i = 0; i<n; ++i) mas[i] = new int[m];
    for (int i = 0; i<n; ++i)
        for (int j = 0; j<m; ++j){ cout<<"m as["<<i<<"]["<<j<<"]="; cin>>mas[i][j]; }
    return mas;
}
void print(int **mas, int n, int m)
{
    for (int i = 0; i<n; i++, cout<<endl)
        for (int j = 0; j<m; j++) cout << mas[i][j]<<"\t";
}
void deleteMas(int **mas, int n)
{
    for (int i = 0; i<n; i++) delete[] mas[i];
    delete[] mas;
}
int main()
{
    int n, m, k,c;
    int **a = creat(n, m); //создаем и заполняем матрицу а
    int n2 = 2 * n; //п- текущее количество строк, п2 -максимально возможное
    print(a, n, m); //выводим первоначальный массив
    cout << "Enter c" << endl; cin >> c;
    if (a[n][m]==c)
    cout<<"k = "; cin>>k; //вводим номер строки для добавления
        if (k<0 || k>n - 1 || n + 1>n2) cout<<"error";
        else {
            for (int i = n; i>k; -i) a[i] = a[i - 1]; //выполняем сдвиг строк
            ++n; //увеличиваем текущее количество строк в массиве
            a[k] = new int[m]; //выделяем память под новую строку массива и заполняем ее
            for (int j = 0; j<m; ++j) { cout <<"a[" << k << ")[" << j << "]="; cin>>a[k][j]; }
            print(a, n, m);
        } //выводим измененный массив
        deleteMas(a, n);
        return 0;
}
Добавлено через 11 минут
Напишите полный кодпожалуйста

Добавлено через 7 часов 10 минут
никто не знает?(
Yandex
Объявления
28.12.2015, 08:20     В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число
Ответ Создать тему
Опции темы

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