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

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

Восстановить пароль Регистрация
 
Марселька
 Аватар для Марселька
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 50
07.10.2013, 21:45     Матрица "большой" размерности #1
Здравствуйте. Не могу составить матрицу "большой" размерности. Начиная с [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++ Ошибка Необработанное исключение в "0x001d18f8" в "lr7v2.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcde9"
C++ Необработанное исключение в "0x54a2d2e9 (msvcr100d.dll)" в "3.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc".
Необработанное исключение в "0x1027c9c7 (msvcr100d.dll)" в "gh.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfeeefeee". C++
Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки C++
C++ Необработанное исключение в "0x76f015de" в "контрольная 1 задача 2.exe": 0xC0000005: Нарушение прав доступа при чтении "0x334e2c64"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 / 50
Регистрация: 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     Матрица "большой" размерности
Еще ссылки по теме:

Необработанное исключение в "0x0fc1d484 (msvcr100d.dll)" в "1.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00aee0af" C++
Как реализовать указатель "n" размерности на разные объекты? C++
Класс "Матрица". Перегрузка оператора "минус" C++

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

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

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