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

Тривиальная задача: двухмерный динамический массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Error C3861: time: идентификатор не найден http://www.cyberforum.ru/cpp-beginners/thread420160.html
#include <list> #include <iostream> #include <iterator> #include <algorithm> template <class T> T gen() { return rand() % 21; } int main() {
C++ как правильно читается ( что значит ) как правильно читается ? if(t1!=0 && t3>=0) http://www.cyberforum.ru/cpp-beginners/thread420152.html
Поменять местами max и min элементы файла C++
Необходимо поменять местами max и min элементы файла, помогите!
C++ Наследование шаблонов
Есть некоторый класс first, реализованный по шаблону. Можно ли от него наследовать другой класс, сохраняя при этом шаблон? Есть такой код template <class T> class first { public: T value; first() { } };
C++ Цикл с "мутным" условием http://www.cyberforum.ru/cpp-beginners/thread420124.html
#include <cstdlib> #include <iostream> #include <cmath> int main() {int k,n,x; double U; printf("Vvedite x="); scanf("%d",&x); printf("Vvedite k="); scanf("%d",&k);
C++ Пример создания брут форса Интересует пример создания много функционального консольного брут форса. Хочу попрактикуватся с С++. Так же интересует чем луче компилируватся. Можно обойтись без огромних сибулдеров или визуал студий? Или за ними будущое даже в создании консольных програм? подробнее

Показать сообщение отдельно
dgroup
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 16
29.12.2011, 00:20     Тривиальная задача: двухмерный динамический массив
задача простая: считать из файла размеры двухмерной матрицы, динамически ее создать, провести над ней операции, вывести в файл. Проблема в чем скачивается только 1 строчка массива. и над ней все проиводится. Исправте ошибку пожалуйста.
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include <stdio.h>
#include <fstream>
#include <vector>
#include "iostream"
#include <string>
#include <clocale>  // поддержка русского языка
 
using namespace std;
 
class matrica{
public:
    matrica():mn_minPosStr(0), mn_minPosStb(0),mn_razStr(0),mn_razStb(0){}
 
    void inputParametrs();  // считывает матрицу из файла
    void work();            // находит минимальный елемент, и его позиции
    void outParametr();     // выводит результат в файл
 
private:
    double **md_ms; // наш массив
    int mn_razStr, // длина строчки
        mn_razStb, // длина столба
        mn_minPosStr, // позиция минимального елемента в строке
        mn_minPosStb; // позиция минимального елемента в столбе
 
};
    void matrica:: inputParametrs(){
        
        ifstream a("input.txt",ios::in);
            
        a >> mn_razStr >> mn_razStb;
        
        md_ms = new double*[mn_razStr];
        
        for(int i =0; i< mn_razStr; i++)
            md_ms[i] = new double[mn_razStb];
        
        for(int i =0, j=0; i < mn_razStr ;i++ ){
            for(; j < mn_razStb; j++ ){
                a >> md_ms[i][j]; 
            }
        }
        a.close();
    }  
    void matrica:: work(){
        double temp = md_ms[0][0];
        for(int i=0, j=0; i < mn_razStr; i++){
            for(; j <mn_razStb ; j++){
                if (temp > md_ms[i][j]){
                    temp = md_ms[i][j];
                    mn_minPosStr = i;
                    mn_minPosStb = j;
                }   
            }
        }
    }
    void matrica:: outParametr(){
        ofstream b("output3.txt", ios::out);
 
        cout << "\tВыходящие данные:\n Для массива: ";
        b <<  "\tВыходящие данные:\n Для массива: ";
        for(int i=0,j=0; i < mn_razStr; i++){
            for(; j < mn_razStb ; j++){
                cout << md_ms[i][j] << " ";
                b << md_ms[i][j] << " ";
            }
            cout << endl;
        }
        
        b << "\n Минимальный элемент: " << md_ms[mn_minPosStr][mn_minPosStb] <<
            ", Позиция [: " << mn_minPosStr+1 <<"]["<< mn_minPosStb+1 <<"]." << endl;
        
        cout << "\n Минимальный элемент: " << md_ms[mn_minPosStr][mn_minPosStb] <<
            ", Позиция [: " << mn_minPosStr+1 <<"]["<< mn_minPosStb+1 <<"]." << endl;
        b.close();
    }
    int main(){
        setlocale(LC_CTYPE,"Russian");
        matrica m;
        m.inputParametrs();
        m.work();
        m.outParametr();
        return EXIT_SUCCESS;
    }
==========================================================================
не получилось через массивы. попробую через вектрры.
============================================================================
 
class matrica{
public:
    matrica():mn_minPosStr(0), mn_minPosStb(0),mn_razStr(0),mn_razStb(0){}
 
    void inputParametrs();  // считывает матрицу из файла
    void work();            // находит минимальный елемент, и его позиции
    void outParametr();     // выводит результат в файл
 
private:
    vector <vector <double> > md_ms; // наш массив
    int mn_razStr, // длина строчки
        mn_razStb, // длина столба
        mn_minPosStr, // позиция минимального елемента в строке
        mn_minPosStb; // позиция минимального елемента в столбе
 
};
    void matrica:: inputParametrs(){
        
        ifstream a("input.txt",ios::in);
        a >> mn_razStr >> mn_razStb;
        md_ms.assign(mn_razStr, vector<double>(mn_razStb));
        
        for( unsigned i=0, j =0; i < md_ms.size(); i++){
            for( ; j< md_ms[i].size() ; j++){
                a >> md_ms[i][j];
            }
        }
 
        a.close();   
    }  
    void matrica:: work(){
        double temp = md_ms[0][0];
        
        for(int i=0, j=0; i < mn_razStr; i++){
            for(; j < mn_razStb ; j++){
                if (temp > md_ms[i][j]){
                    temp = md_ms[i][j];
                    mn_minPosStr = i;
                    mn_minPosStb = j;
                }   
            }
        }
    }
    void matrica:: outParametr(){
        ofstream b("output3.txt", ios::out);
 
        cout << "\tВыходящие данные:\n Для массива: \n";
        b <<  "\tВыходящие данные:\n Для массива: \n";
        for(int i=0,j=0; i < mn_razStr; i++){
            for(; j < mn_razStb ; j++){
                cout << md_ms[i][j] << " ";
                b << md_ms[i][j] << " ";
            }
            cout << endl;
        }
        
        b << "\n Минимальный элемент: " << md_ms[mn_minPosStr][mn_minPosStb] <<
            ", Позиция: [ " << mn_minPosStr+1 <<"]["<< mn_minPosStb+1 <<"]." << endl;
        
        cout << "\n Минимальный элемент: " << md_ms[mn_minPosStr][mn_minPosStb] <<
            ", Позиция: [ " << mn_minPosStr+1 <<"]["<< mn_minPosStb+1 <<"]." << endl;
        b.close();
    }
    int main(){
        setlocale(LC_CTYPE,"Russian");
        matrica m;
        m.inputParametrs();
        m.work();
        m.outParametr();
        return EXIT_SUCCESS;
    }
ч

Добавлено через 9 минут
Входные параметры: 3 3 1 -2 3 4 5 6 -7 -8 9.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru