Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
novak
2 / 2 / 0
Регистрация: 14.04.2011
Сообщений: 141
#1

Задание размера матрицы - C++

14.11.2011, 22:26. Просмотров 424. Ответов 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
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
#include <iostream>
#include <windows.h>
#include <cmath>
using namespace std;
 
struct find_data {
    int nst1;
    int nstr1;
};
 
class Matrix
{
 private:
    int n; // порядок матрицы
    int *data; // указатель на массив
 public:
    Matrix(int an = 1);
    ~Matrix();
     find_data find();
    void print();
    void input();
 
};
 
Matrix::Matrix(int an /* = 1 */)
{
    data = new int[an*an];
    n = an;
    for (int i=0; i< n; i++)
        for (int j=0; j< n; j++)
         data[i * n + j] = 0;
}
 
Matrix::~Matrix()
{
    delete [] data;
}
 
void Matrix::print()
{
    for (int i=0; i< n; i++)
    {
        for (int j=0; j< n; j++)
           cout << data[i * n + j] << " ";
        cout << endl;
    }
}
 
void Matrix::input()
{
    for (int i=0; i< n; i++)
        for (int j=0; j< n; j++)
          cin >> data[i * n + j];
}
 
find_data Matrix::find()
{
int b,c,min,nst,nstr,nstr1=0,nst1=0,e,flag,ret[2];
for(b=0;b<n;b++)     //АНАЛИЗ ДАННЫХ МАТРИЦЫ
{
flag=0;
min=data[n*b];
nst=0;
nstr=0;
for(c=0;c<n;c++)     //Поиск наим. значения в сответствующей стоке(благодоря строкам 15-17 нулевой элемент анаизировать не надо)
{
if(data[b*n+c]<=min)
{min=data[b*n+c];
nst=c;             //в nst и nstr сохраняются "координаты"
nstr=b;}           //наим. значения в сответств. строке
}
for(e=0;e<n;e++)   //Анализ:является ли найденный наим. эл-т в строке, наиб. значением в столбце
{if(data[nst+n*e]>min)  //Если найден хоть один эл-т больше проверяемого,
flag=1;}            //то флаг =1
if(flag==0)         //В противном случае, проверяемый эл-т и будет искомым
{nstr1=nstr+1;        //Его координаты сохраняются в nstr1 и nst1
nst1=nst+1;}
}
find_data fd;
        fd.nst1=nst1;
        fd.nstr1=nstr1;
        return fd;
}
 
int main()
{
    SetConsoleOutputCP(1251);
    cin >>an;
    Matrix M(an);
    cout << "Vvod matrix" << endl;
    M.input();
    cout << "Matrix:" << endl;
    M.print();
    find_data coord = M.find();
        cout << "Nomer stolba=" << coord.nst1 << "  Nomer stroki=" << coord.nstr1 <<endl;
 
    return 0;
}
На строки 88, 89 компилятор сильно ругается. Как тогда задать размеры матрицы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 22:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задание размера матрицы (C++):

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

Задание размера массива символов - C++
Доброго времени суток. Суть такая-нужно создать описатель типа MPI, который будет работать с массивом символов, т.к. вроде в MPI нет...

Задание размера массива на этапе исполнения - C++
Qt 5.4.1, MinGW 32bit... спокойно кушает такой код: #include &lt;iostream&gt; int main () { int i; std::cin &gt;&gt; i; int...

Задание размера и инициализация массива указателей в конструкторе - C++
1) h: SDL_Texture *textures; Как задать размер и инициализировать в конструкторе? Если пишу так: SDL_Texture *textures; ...

Разработать алгоритм и написать по нему программу умножения матрицы А размера m × n на матрицу В размера n × p. Значение величин m, n, р выбрать из та - C++
Разработать алгоритм и написать по нему программу умножения матрицы А размера m × n на матрицу В размера n × p. Значение величин m, n, р...

Реализовать задание с использованием функций (ввод матрицы, вывод матрицы, вычисление суммы) - C++
Реализовать задание с использованием функций (ввод матрицы, вывод матрицы, вычисление суммы) и цикла for для вычисления суммы. Изменение...

3
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
14.11.2011, 22:30 #2
Вы забыли объявить переменную an, вот компилятор ругается на использование необъявленной переменной по всей видимости
C++
1
2
3
4
5
6
int main()
    {
    int an;
    cin >> an;
    Matrix M(an);
    ...
0
novak
2 / 2 / 0
Регистрация: 14.04.2011
Сообщений: 141
14.11.2011, 22:35  [ТС] #3
Да, действительно. Но наверное ее лучше объявить глобальной переменной в строке № 10. Иначе здесь динамический массив как таковой не будет действовать.
0
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
14.11.2011, 22:38 #4
Цитата Сообщение от novak Посмотреть сообщение
Иначе здесь динамический массив как таковой не будет действовать
Что значит "не будет действовать"? От того, где вы объявите переменную, в глобальной области, либо в main'е, ничего не должно измениться.
0
14.11.2011, 22:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2011, 22:38
Привет! Вот еще темы с ответами:

Ввод с клавы размера целочисленной матрицы, а затем самой матрицы. Найти наибольший элемент. Разрешается использовать только один оператор цикла - C++
С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица. Найти наибольший элемент. Разрешается при этом использовать...

Для заданной матрицы размера NхN найти такие k и n, что сумма элементов k- столбца матрицы совпадает с суммой элементов n- го строки - C++
Для заданной матрицы размера NхN найти такие k и n, что сумма элементов k- столбца матрицы совпадает с суммой элементов n- го строки. Найти...

Изменение размера матрицы - C++
столкнулся с проблемой: vectorB(7,&quot;-&quot;); vector&lt;vector&gt;A(7,B); //так задаю массив размером 7*7 нужно изменить кол-во столбцов т. е....

Матрицы произвольного размера. - C++
Помогите пожалуйста написать программу, которая будет работать с матрицами произвольного размера. необходимо определить для матриц операции...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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