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

Добавление столбцов в матрицу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ числовая последовательность http://www.cyberforum.ru/cpp-beginners/thread773995.html
Помогите пожалуйста хотя бы с первым заданием, потом может сам дотукаю плизззз!!!!!! Условия задания 1: Найти среднее арифметическое положительных элементов данной последовательности. Условия задания 2: В выходную последовательность записать только те числа, которые меньше суммы своих соседей (если первое число меньше второго, записываем первое число; если второе число меньше суммы первого...
C++ Как записать данные в файл русским языком? [VS2008] я использовал в предыдущей теме вот такие методы: SetConsoleCP(1251); SetConsoleOutputCP(1251); Я не очень правильно понял, как использовать. Но я поэкспериментировал и у меня получилось так, что вот я записываю файл, записывается русским языком а выводится в консоль в каракулями и или наоборот. Я вот лично запутался, может кто поможет как правильно использовать? Скажу так. если... http://www.cyberforum.ru/cpp-beginners/thread773943.html
Собственная реализация стека. Критика C++
Покритикуйте пожалуйста реализацию. Самому мне не очень нравится момент с завершением работы программы в catch блоке, но не знаю как обойти возврат мусора в функции, возвращающей T&. Ведь данные могут быть и обработаны какой-нибудь другой функцией, принимающей результат работы в качестве аргумента. Но если этого нет, то, в принципе, программа остается дееспособной. Stack.h #ifndef _STACK_H_...
C++ Посоветуйте компилятор для C++
Пользуюсь VS 2008 express,но с ним возникли проблемы при использовании чтении данных из файлов,может руки кривые и не знаю,как кодировку настроить правильно,если объясните,то буду благодарен,ну а так качаю eclipse,может с ним такой беды не будет,ну или посоветуйте чего ещё,у меня XP
C++ Ввод/вывод баг или нет? http://www.cyberforum.ru/cpp-beginners/thread773898.html
#include <iostream> #include <iterator> #include <string> using namespace std; ostream_iterator<string> oo(cout); istream_iterator<string> ii(cin); int main() {
C++ Кривое считывание с файла #include <iostream> #include <fstream> #include <string> #include <locale.h> using namespace std; #include <windows.h> int main() { setlocale(LC_ALL,"Russian"); string str="Vremya-velikiy ychitel,no,yvi, ono ybivaet svoih ychenikov. Berlioz"; подробнее

Показать сообщение отдельно
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
29.01.2013, 23:19     Добавление столбцов в матрицу
задача: Написать программу, которая осуществляет добавление строки или
столбца в любое место двумерной матрицы по выбору пользователя.
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <iostream> 
#include <time.h> 
#include <locale.h> 
using namespace std;
void addCol (char**& parry, int &row, int &col)
{
    col++;
    int poz;
    cout<<"Введите номер столбца ->";
    cin>>poz;
    char ** temp = new char*[row];
    for(int i = 0; i < row; i++)
        temp[i] = new char[col];
    for(int i = 0; i < row; i++){
        int n = 0;
        for(int j = 0; j < col; j++){
            if(j != poz)
                temp[i][j] = parry[i][n++];
            else
                temp[i][j] = '*';
            }
        }
    for(int i = 0; i < row; i++)//удвляем прежний массив
            delete []parry[i];
    delete []parry;
    
    parry = temp;//присваиваем модифицированый  
} 
void addRow (char**& parry, int &row, int &col)
{ 
    row++;
    int poz;
    cout<<"Введите номер строки ->";
    cin>>poz;
    char ** temp = new char*[row];
    for(int i = 0; i < row; i++)
        temp[i] = new char[col];
    int n = 0;
    for(int i = 0; i < row; i++){
        if(i != poz){
            for(int j = 0; j < col; j++)
                temp[i][j] = parry[n][j];
                n++;
            }
        else
            for(int j = 0; j < col; j++)
                temp[i][j] = '*';
        }
    for(int i = 0; i < (row-1); i++)//удвляем прежний массив
            delete []parry[i];
    delete []parry;
    
    parry = temp;//присваиваем модифицированый  
}
void show (char**& parry, int &row, int &col)
{ 
    for(int i = 0; i < row; i++){
        for(int j = 0; j<col; j++)
            cout<<parry[i][j]<<" ";
        cout<<endl;
    }
} 
 
void main()
{ 
    setlocale(LC_ALL,"Russian");
    srand(time(NULL));
    // Создание и инициализация массива указателей 
    void (*MenuAct[3])(char**& , int& , int&) = {show, addCol ,addRow};
    int row = 5, col = 5, select;
    char **arry = new char*[row];
    for(int i = 0; i<row; i++)
        arry[i] = new char[col];
    for(int i = 0; i < row; i++){
        for(int j = 0; j<col; j++)
            arry[i][j] = rand()%256;
    }
    char** &parry = arry;
 
    // Реализация меню
    cout << "Меню:\n";
    cout << "1 - Демонстрация\n";
    cout << "2 - Добавить столбик\n";
    cout << "3 - Добавить строчку\n";
    cout << "4 - Завершить работу\n";
 
    while (true)  // Бесконечный цикл.
    { 
        while (true)
        {
            cout << "Выберите пункт меню для работы с массивом:\n";
            cin >> select;
            if (select >= 1 && select <= 4) break; 
            else
                cout << "\nError number!"; 
        } 
        // Вызов функции по указателю на нее:
        if(select != 4)
        (*MenuAct[select-1])(parry, row, col);
        else break;
    } // Конец бесконечного цикла.*/
}
посмотри может что то будет полезно
 
Текущее время: 00:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru