Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
#1

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

19.03.2011, 11:22. Просмотров 616. Ответов 11
Метки нет (Все метки)

Помогите, пожалуйста. Написал код для вывода матрицы.Но при наборе как то странно выводит матрицу,последние элементы не те!Хотел скриншот выложить, но что то не получилось!Помогите пожалуйста!
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;
}
0
Миниатюры
Как то странно выводит матрицу.  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2011, 11:22
Ответы с готовыми решениями:

Написан код который выводит матрицу .Нужно протранспонировать ее
Написан код который выводит матрицу .Нужно протранспонировать ее. #include...

Создать программу, которая выводит на экран символьную матрицу
создать прогу которая выводит на экран символьную матрицу. пример...

Написать программу,которая выводит на экран ( для заданного n>1) верхнетреугольную матрицу
Напишите пожалуйста( Написать программу,которая выводит на экран ( для...

Почему не выводит отсортированную матрицу по сумме эл-тов строк(свой код есть)
Здравствуйте! Условие задачи такое: расположить строки матрицы в порядке...

Один поток транспонирует матрицу, другой выводит сумму строк в транспонированной матрице
В программе порождаются два потока работающие с матрицей размером m*n. Один...

11
lemegeton
2933 / 1362 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
19.03.2011, 11:26 #2
В момент объявлении матрицы значение N неопределено.
0
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
19.03.2011, 11:27  [ТС] #3
Так я же его запрашиваю,N-размерность матрицы.
0
lemegeton
2933 / 1362 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
19.03.2011, 11:32 #4
То есть, сначала создается матрица, а потом запрашивается размерность?
It does not work this way.
0
Nameless One
Эксперт С++
5785 / 3434 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
19.03.2011, 11:33 #5
lexatigr, оно должно быть известно ДО того, как объявлена матрица. А то так объявляем матрицу неизвестного размера.
0
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;
их просто поменять местами?
0
Nameless One
Эксперт С++
5785 / 3434 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
19.03.2011, 11:35 #7
lexatigr, ага. И память выделить динамически.
0
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
19.03.2011, 11:37  [ТС] #8
Спасибо, огромное!
А как выделить динамическую память??
0
bigredcat
370 / 317 / 32
Регистрация: 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;
}
0
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;
А что этот "кусок" программы делает?
0
bigredcat
370 / 317 / 32
Регистрация: 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;
0
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
19.03.2011, 11:52  [ТС] #12
Спасибо большое!
А может, вы поможете выполнить такое условие:
1)Выбирать первый слева столбец матрицы, в котором есть хоть одно отличное от нуля значение.
2)Если самое верхнее число в этом столбце есть ноль, то заменить всю первую строку матрицы с другой строкой матрицы, где в этой колонке нет нуля.
0
19.03.2011, 11:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2011, 11:52

insert работает как-то странно
По задумке при последовательном вводе чисел 1, 2, 3 и тд на экране должно...

Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер
Всем доброго времени суток!!! Передо мной стоит задача: написать программу,...

Циклы ведут себя как-то странно
#include &lt;iostream&gt; using namespace std; int main() { float...


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

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

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