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

Не удаляется матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Тернарная операция http://www.cyberforum.ru/cpp-beginners/thread228638.html
Всем доброго времени суток. Вот написал прогу #include <iostream> #include <fstream> #include <string> using namespace std; int main(int argc, char** argv) { string name; ...
C++ как реализовать!!!! Комендант крепости выходит из центрального помещения и проверяет как солдаты дежурят на постах. При этом он, проходя все посты, не проходит дважды по одному участку маршрута и каждый пост посещает... http://www.cyberforum.ru/cpp-beginners/thread228636.html
C++ Разработать программу работы с бинарным деревом
Народ, прошу помощи в решении нескольких заданий, в противном случае, не видать мне сессии.... :cry: Задание №1 1)Упорядочить элементы массива по убыванию модулей элементов. 2)Дана квадратная...
C++ Замена символов в массиве
Продолжая переводить лабы из паскаля в C++ Имеем такой код на паскале: var a:string; p,i:byte; begin writeln('введи текст для обработки ->'); readln(a); for i:=1 to length(a) do if...
C++ Private: static http://www.cyberforum.ru/cpp-beginners/thread228615.html
В хедере есть клас point, клас точек, которые должны иметь нумерацию. В поле private у него есть static атрибут free_id, в который записывается не используемый еще номер(увеличивается на 1 при...
C++ Построить простую фигуру (ромб) с помощью циклов while и do/while как построить простую фигуру(ромб) с помощью цикла while и do_while?Помогите пожалуйста!! подробнее

Показать сообщение отдельно
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133

Не удаляется матрицы - C++

14.01.2011, 03:16. Просмотров 288. Ответов 0
Метки (Все метки)

В самом конце кода есть два оператора
delete []mas;
delete []mass;
Первый сработал, а второй выдал ошибку.
Это происходит с не квадратной матрицей, например, 3х4.
А вот с квадратным матрицами работает программа нормально.
Вводить только отрицательные числа!

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int** input(int m,int n);
void output(int **mas, int m,int n);
int resmas(int **mas,int m,int n);
void editmas(int m,int n,int **mas);
void main(void)
{ 
int n,m;    cout<<endl<<"vvedi koli4estvo strok"<<endl; cin >> m; 
      cout<<"vvedi koli4estvo stolbcov"<<endl; cin >> n;
      
    
 do{
    int **mas=input(m,n);
    
 
    output(mas,m,n); cout<<endl; 
 
      editmas(m,n,mas); 
    
    }
    while(_getch()=='y');
}
 
//1 din
 
#include <iostream> 
using namespace std;
int *entermas(int N);
int** input(int m,int n)
{int **mas = new int *[m];
    for(int i=0; i<m; i++) 
      mas[i]=entermas(n);            
return mas;}      
 
 
int *entermas(int N)
{ 
int *mas0 = new int [N];
  for(int i=0;i!=N;i++) {cout << "vvedite "<< i+1<<" element massiva "<< endl;
cin >> mas0[i];
 
}; return mas0;
}
 
  
//2 din
 
#include <iostream>
using namespace std;
void output(int **mas, int m,int n)
{
  for (int i = 0,j = 0; i!=m; i++){
for (j=0; j!=n; j++){cout << *(*(mas+i)+j)<<" ";
};cout<<endl;};}
 
//3 din
 
#include <math.h>
#include <iostream>
 
using namespace std;
 
void output(int **mas, int m,int n);
 
int resmas(int **mas, int m,int n)
{
  int s=0;
for(int i=0;i!=m;i++)
{ 
  for(int j=0;j!=n;j++)
  {s=s+mas[i][j];}
;}
;
if (s>=0) return 0; return 1;}
 
 
void editmas(int m,int n,int **mas)
{int i,j=1,z,min;
 
if(resmas(mas,m,n)!=0){
 
int **mass = new int *[m];
    for(int i=0; i<n; i++) 
          mass[i]=new int [n];
 
 
 
  for(int i=0;i!=m;i++){min=0;
 
    for(int j=1;j!=n;j++){ 
 
        if(abs(mas[i][j])<abs(mas[i][min])) min=j; };
  z=mas[i][min];   mas[i][min]=mas[i][i]; mas[i][i]=z;
  };
  
  i=0; 
for(int i=0;i!=m;i++){for(int j=0;j!=n;j++){ mass[i][j]=mas[i][j];};};   
      output(mass,m,n);
 
for(int i=0;i<m;++i){
  delete []mas[i];
  delete []mass[i];
  };
  delete []mas;
  delete []mass;
 
}
 
      else cout<<"tak ne poidet!!"<<endl; cout<<"povtorit'?"<<endl;
}
Добавлено через 22 минуты
Нашел ошибку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru