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

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

Войти
Регистрация
Восстановить пароль
 
Марселька
 Аватар для Марселька
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 50
#1

Матрица "большой" размерности - C++

07.10.2013, 21:45. Просмотров 352. Ответов 7
Метки нет (Все метки)

Здравствуйте. Не могу составить матрицу "большой" размерности. Начиная с [8x8] строятся с какой то ошибкой.([9x9] почему то нормально работает)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
int main()
{
    int i,j,n;
    cout<<"[nxn]: ";
    cin>>n;
    int A[n][n];
    for (i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    A[i][j]=rand()%(2);
    cout<<"A[nxn]:"<<endl;
    for (i=1;i<=n;i++)
    { for(j=1;j<=n;j++)
    cout<<A[i][j]<<" ";
    cout<<endl;}
    getch();
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2013, 21:45     Матрица "большой" размерности
Посмотрите здесь:

C++ реализация класса "симметричная матрица целых чисел"...
является ли введенная с клавиатуры квадратная матрица "магическим" квадратом C++
Класс "Матрица": конструктор, деструктор и перегрузка операторов C++
Проверить является ли квадратная матрица " магическим квадратом" C++
Как реализовать указатель "n" размерности на разные объекты? C++
C++ Класс "Матрица", ошибка при выводе результата
Класс "Матрица". Перегрузка оператора "минус" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
justDo
 Аватар для justDo
8 / 8 / 2
Регистрация: 06.10.2013
Сообщений: 19
07.10.2013, 22:13     Матрица "большой" размерности #2
Марселька, это не должно работать. размерность матрицы должна быть константной.
цикл должен идти от 0 до n(строгое неравенство)

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
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    const int n = 9;
    int A[n][n];
 
    for (int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            A[i][j] = rand()%2;
 
    cout << "A[nxn]:" << endl;
 
    for (int i = 0; i < n; i++)
    { 
        for(int j = 0; j < n; j++)
            cout << A[i][j] << " ";
        cout << endl;
    }
 
    system("pause >> void");
}
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
07.10.2013, 22:13     Матрица "большой" размерности #3
Индексы массивов начинаются с 0.
justDo
 Аватар для justDo
8 / 8 / 2
Регистрация: 06.10.2013
Сообщений: 19
07.10.2013, 22:15     Матрица "большой" размерности #4
Марселька, если хотите менять размерность массива из программы, то используйте динамические массивы, или вектора из стандартной библиотеки
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
07.10.2013, 23:44     Матрица "большой" размерности #5
Цитата Сообщение от justDo Посмотреть сообщение
это не должно работать. размерность матрицы должна быть константной.
http://en.wikipedia.org/wiki/Variable-length_array
Если используется, к примеру, gcc, то в полне будет работать.
justDo
 Аватар для justDo
8 / 8 / 2
Регистрация: 06.10.2013
Сообщений: 19
07.10.2013, 23:55     Матрица "большой" размерности #6
Toshkarik, совсем забыл про это. спасибо )
Марселька
 Аватар для Марселька
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 50
08.10.2013, 16:06  [ТС]     Матрица "большой" размерности #7
спасибо, все работает теперь)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2013, 16:14     Матрица "большой" размерности
Еще ссылки по теме:

Класс "Матрица", перегрузка оператора "+" C++
C++ Класс "Матрица". "Правило трёх"
C++ Композиция классов "Матрица" и "Вектор"
Реализовать умножение матриц в пользовательском классе "Матрица" C++
C++ Реализовать шаблонный класс "Матрица" (шаблоны классов и функций)

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

Или воспользуйтесь поиском по форуму:
CheshireCat
Эксперт С++
2910 / 1238 / 78
Регистрация: 27.05.2008
Сообщений: 3,321
08.10.2013, 16:14     Матрица "большой" размерности #8
Работать-то будет.... Только Марселька должен(-на) отдавать себе отчет в том, что VLA - это нестандартное расширение GCC, и при переходе на другой компилятор все сломается.
Yandex
Объявления
08.10.2013, 16:14     Матрица "большой" размерности
Ответ Создать тему
Опции темы

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