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

Как то странно выводит матрицу. - C++

Восстановить пароль Регистрация
 
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
19.03.2011, 11:22     Как то странно выводит матрицу. #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
using namespace std;
 
int main(int argc, char *argv[])
{
    int i,j,N;
    int X[N][N];
    cout << "Razmernost matricy"; cin >> N;
     
for ( i = 0; i < N; i ++ )
   for ( j = 0; j < N; j ++ ) {
printf ("X[%d][%d]=", i, j);
scanf ("%d", & X[i][j]);
}
           
        
printf("Matrica X\n");
for ( i = 0; i < N; i ++ ) {
for ( j = 0; j < N; j ++ )
      printf ( "%4d", X[i][j] );
      printf("\n");
      }
      
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Миниатюры
Как то странно выводит матрицу.  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
19.03.2011, 11:26     Как то странно выводит матрицу. #2
В момент объявлении матрицы значение N неопределено.
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
19.03.2011, 11:27  [ТС]     Как то странно выводит матрицу. #3
Так я же его запрашиваю,N-размерность матрицы.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
19.03.2011, 11:32     Как то странно выводит матрицу. #4
То есть, сначала создается матрица, а потом запрашивается размерность?
It does not work this way.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
19.03.2011, 11:33     Как то странно выводит матрицу. #5
lexatigr, оно должно быть известно ДО того, как объявлена матрица. А то так объявляем матрицу неизвестного размера.
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
19.03.2011, 11:34  [ТС]     Как то странно выводит матрицу. #6
То есть, что надо изменить??
C++
1
2
int X[N][N];
    cout << "Razmernost matricy"; cin >> N;
их просто поменять местами?
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
19.03.2011, 11:35     Как то странно выводит матрицу. #7
lexatigr, ага. И память выделить динамически.
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
19.03.2011, 11:37  [ТС]     Как то странно выводит матрицу. #8
Спасибо, огромное!
А как выделить динамическую память??
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
19.03.2011, 11:38     Как то странно выводит матрицу. #9
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
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
 
 
int main(int argc, char *argv[])
{
    int i,j,N;
    int** X;
    cout << "Razmernost matricy"; cin >> N;
 
    X = new int*[N];
    for (i = 0; i < N; i++)
            X[i] = new int[N];
 
    for ( i = 0; i < N; i ++ )
        for ( j = 0; j < N; j ++ ) {
            printf ("X[%d][%d]=", i, j);
            scanf ("%d", & X[i][j]);
        }
 
 
        printf("Matrica X\n");
        for ( i = 0; i < N; i ++ ) {
            for ( j = 0; j < N; j ++ )
                printf ( "%4d", X[i][j] );
            printf("\n");
        }
 
    for (i = 0; i < N; i++)
            delete X[i];
    delete[] X;
 
        system("PAUSE");
        return EXIT_SUCCESS;
}
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
19.03.2011, 11:40  [ТС]     Как то странно выводит матрицу. #10
bigredcat,
C++
1
2
3
for (i = 0; i < N; i++)
                        delete X[i];
        delete[] X;
А что этот "кусок" программы делает?
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
19.03.2011, 11:49     Как то странно выводит матрицу. #11
Освобождает память, выделенную ранее для динамического массива

C++
1
2
3
4
5
6
7
8
9
10
11
// выделяем память
X = new int*[N];
for (i = 0; i < N; i++)
    X[i] = new int[N];
 
// ... как-то используем массив
 
// освобождаем, когда массив больше не нужен
for (i = 0; i < N; i++)
    delete X[i];
delete[] X;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2011, 11:52     Как то странно выводит матрицу.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
19.03.2011, 11:52  [ТС]     Как то странно выводит матрицу. #12
Спасибо большое!
А может, вы поможете выполнить такое условие:
1)Выбирать первый слева столбец матрицы, в котором есть хоть одно отличное от нуля значение.
2)Если самое верхнее число в этом столбце есть ноль, то заменить всю первую строку матрицы с другой строкой матрицы, где в этой колонке нет нуля.
Yandex
Объявления
19.03.2011, 11:52     Как то странно выводит матрицу.
Ответ Создать тему
Опции темы

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