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

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

Войти
Регистрация
Восстановить пароль
 
brenor01
2 / 2 / 1
Регистрация: 15.01.2010
Сообщений: 98
#1

В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы - C++

20.03.2012, 00:21. Просмотров 642. Ответов 10
Метки нет (Все метки)

В квадратной матрице отсортировать строки, у которых на побочной диагонали стоят четные элементы.

Проблема в том что выдает ошибку : cannot convert 'int*' to 'int'

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

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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
 
#include <tchar.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{   int n,m,i,j,c;
        int **a;
        printf("n="); scanf("%d",&n);
        a=new int*[n];
        for(i=0;i<n;i++)
          a[i]=new int [m];
          randomize();
          printf("\n  Matrix A=:\n");
          for (i=0;i<n;i++)
          {
            for (j=0;j<n;j++)
                { a[i][j]=random(50)-10;
                        printf(" %3d ", a[i][j]);
                }
          printf ("\n");
          }
 
            for (i=0;i<n;i++)
            for (j=0;j<n;j++)
           if (i+j==n-1)
               {        if (a[i][j]%2==0)
                  {
                      for (i = 0; i < n-1; i++)
                     {
                       for (j = 0; j < n-1-i; j++)
                        {
                           if (a[j+1]>a[j])
                          {
                             c=a[j+1];
                             a[j+1]=a[j];
                             a[j]=c;
 
                          }
                        }
                     }
                   }
               }
 
            printf("\n Massiv A:\n");
            for(i=0;i<n;i++)
            {  for(j=0;j<m;j++)
             printf(" %3d " , a[i][j]);
               printf("\n");
            }
 
            for (i=0; i < n; i++)
           delete []a[i];
            delete []a;
            getch();
            return 0;
 
            }
 
 
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2012, 00:21     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы
Посмотрите здесь:

C++ В квадратной матрице заменить элементы главной и побочной диагонали на минимальный элемент
C++ [C++] В квадратной матрице провести сортировку тех строк в которых на побочной диагонали стоит парное число
C++ В квадратной матрице найти максимальный среди элементов, лежащих ниже побочной диагонали.
C++ Представить определение функции, позволяющей переставить местами элементы указанной строки и побочной диагонали квадратной матрицы
C++ Найти в квадратной матрице сумму элементов, расположенных ниже побочной диагонали
В квадратной матрице провести сортировку тех строк, в которых на побочной диагонали стоит четное число C++
C++ Обнулить в квадратной матрице элементы, лежащие выше главной и ниже побочной диагонали
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
20.03.2012, 00:42     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #2
Меня вот это в 14 строке смущает: "int **a;", если ты инициализируешь указатель, то надо "int *a;"
brenor01
2 / 2 / 1
Регистрация: 15.01.2010
Сообщений: 98
20.03.2012, 00:47  [ТС]     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #3
Нет, это указатель на двумерный массив, что бы выводил матрицу.
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
20.03.2012, 00:50     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #4
Ну так надо указать строку с ошибкой. Для чего отладчик-то придумали?
brenor01
2 / 2 / 1
Регистрация: 15.01.2010
Сообщений: 98
20.03.2012, 00:54  [ТС]     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #5
Ошибка находиться здесь.

C++
1
c=a[j+1];
Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
20.03.2012, 00:58     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #6
во первых что брасается

C++
1
a[i]=new int [m];
что за m, чему оно равно?? если матрица квадратная то наверно

C++
1
a[i]=new int [n];
а вообще лучше сделать так
C++
1
2
3
4
5
6
printf("n =");
        scanf("%d",&n);
 
        int **a = new int*[n];
        for(i = 0; i < n; i++)
                a[i] = new int [n];
во вторых так

C++
1
2
3
int c = *a[j + 1];
*a[j + 1] = *a[j];
*a[j ] = c;
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
20.03.2012, 00:58     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #7
Ну попробуй так: c=&a[j+1]; с у тебя целого типа, а массив ты объявляешь через указатель: a=new int*[n]; Вообщем, смысл в том, что он не может указатель преобразовать в целый тип.
Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
20.03.2012, 01:00     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #8
в третих Вы выводите матрицу

C++
1
2
3
4
5
6
7
8
 for(i=0;i<n;i++)
        {
                for(j=0;j<m;j++)
                {
                        printf(" %3d " , a[i][j]);
                }
                printf("\n");
        }
и тут
C++
1
for(j=0;j<m;j++)
что такое m???
Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
20.03.2012, 01:04     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #9
После всех исправленных ошибок! Только теперь разбиритесь с сортировкой!

и приведите код в божеский вид! а то читать тяжело!
Миниатюры
В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы  
brenor01
2 / 2 / 1
Регистрация: 15.01.2010
Сообщений: 98
20.03.2012, 01:09  [ТС]     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #10
Сортировка не правильная у меня?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2012, 01:12     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы
Еще ссылки по теме:

C++ В квадратной матрице вычислить сумму элементов, принадлежащих побочной диагонали.
В квадратной матрице проверять на отрицательность числа ниже побочной диагонали C++
Поменять местами элементы квадратной матрицы, которые симметричны побочной диагонали C++
Проверить, имеются ли на побочной диагонали квадратной матрицы элементы со значением 0 C++
В заданной квадратной матрице поменять местами элементы, стоящие на главной и побочной диагонали C++

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

Или воспользуйтесь поиском по форуму:
Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
20.03.2012, 01:12     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы #11
Цитата Сообщение от brenor01 Посмотреть сообщение
Сортировка не правильная у меня?
Как видите по скриншоту наверно не правильная!
Yandex
Объявления
20.03.2012, 01:12     В квадратной матрице отсортировать строки, у которых на побочной диагонали стоять четные элементы
Ответ Создать тему
Опции темы

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