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

динамическое выделение - C++

Восстановить пароль Регистрация
 
Lana937
1 / 1 / 0
Регистрация: 28.10.2010
Сообщений: 46
18.05.2011, 18:27     динамическое выделение #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>  
#include <stdio.h>
using namespace std;   
void main() 
{  
setlocale (LC_ALL,".1251");       
int j, i, k,c,t; 
const int m=3,n=4;
int y[m][n];
int summa=0,bufer=0; 
cout<<"Исходный массив Y "<<endl;  
 for(i=0;i<m;i++) 
 {
     for(j=0;j<n;j++) 
     {
        scanf("%d", & y[i][j]); 
     }
 };
for(i=0;i<m;i++)
{
bufer=0;summa=0;
for(j=0;j<n;j++) 
  {
      if(y[i][j]<0){bufer=1;};
  };
if(bufer==1)
{
for(j=0;j<n;j++) 
  {
      summa=summa+y[i][j];
      
  }
}
};
cout<<" Строка:  ";
printf("%d ",i);
cout<<"Сумма элементов строки: ";
printf("%d ",summa);
cin>>c;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2011, 18:27     динамическое выделение
Посмотрите здесь:

C++ Динамическое выделение
Динамическое выделение памяти C++
C++ Динамическое выделение памяти
Динамическое выделение памяти C++
Динамическое выделение памяти C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 18:31     динамическое выделение #2
Блин! А что надо делать-то? Как сравнивать, если неизвестно, что должно получиться?!!!!
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
18.05.2011, 18:34     динамическое выделение #3
Цитата Сообщение от Lana937 Посмотреть сообщение
const int m=3,n=4; int y[m][n];
А при чём тут динамическое выделение памяти?
Lana937
1 / 1 / 0
Регистрация: 28.10.2010
Сообщений: 46
18.05.2011, 18:42  [ТС]     динамическое выделение #4
да, извиняюсь) забыла дописать..

задание: найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.

Добавлено через 6 минут
вот в этом как раз и сомневалась. правильно или нет)
пробовала другое, но ошибка в "array 2":
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
#include <iostream>
#include <iomanip>   // for manipulator setw()
 
using namespace std;
 
const int m=3, n=3;
 
void qq(){cout<<"----------------------------------------------"<<endl;}
 
int main()
{
int k=1;
int **a=new int*[m];
for (int i=0; i<m; i++)
a[i]=new int[n];
        int z[100], *c;
            c=z;
//int **z=new int*[c];
 
 
//init array 1
for (int i=0; i<m;i++)
{
for (int j=0; j<n;j++)
a[j][i]=k++;
}
cout<<"Array X "; 
 
//out array   1
for (int i=0; i<m;i++)
{  
for (int j=0; j<n;j++)
 
cout<<endl;
}
 
cout<<endl;
qq();
cout<<"Arrange array X "; 
 
//init array   2
 int c=0, z; 
  for(int i=0;i<m;i++)  
  {   for(int j=0;j<n;j++) {z[c]=a[i][j]; c++;}  };
 
  for(int i=0;i<(m*n);i++)
  {  
      for(int j=0;j<(m*n);j++) 
      {
          if(z[j]<z[j+1]){int bufer=z[j];z[j]=z[j+1];z[j+1]=bufer;}
      }  
  }
  c=0;  
  for(int i=0;i<m;i++) 
  {  
      for(int j=0;j<n;j++) {a[i][j]=z[c];c++;}  
  };
 
 
//out array     2
for (int i=0; i<m;i++)
{  
for (int j=0; j<m;j++)
 
cout<<endl;
}
 
cout<<endl;
qq();
 
cout<<"New array X "; 
 
//init array 3
int a1[9]={1,2,3,4,5,6,7,8,9};
 
  for(int j=0;j<n;j++)  {int bufer=a[j][j]; a[j][j]=a[0][j]; a[0][j]=bufer;};
 
//out array   3
for (int i=0; i<m;i++)
{  
for (int j=0; j<n;j++)
 
cout<<endl;
}
 
delete a;
}
задание: Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине – в позиции (2,2), следующий по величине – в позиции (3,3) и т.д., заполнив таким образом главную диагональ.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
18.05.2011, 18:47     динамическое выделение #5
В 1 цикл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for(j=0;j<n;j++)
{
 bufer=0;summa=0;
 for(i=0;i<m;i++)
 {
  summa+=y[i][j];
  if (y[i][j]<0) bufer=1;
 }
 if (bufer)
 {
  cout<<"Строка: " << j << endl;
  cout<<"Сумма элементов строки: " << summa << endl;
 }
}
Добавлено через 2 минуты
Если двумерный массив выделяется так:
C++
1
2
3
a = new int[n];
for (int i = 0; i<n; i++)
        a[i] = new int[n];
то и удаляется так же
C++
1
2
3
for (int i = 0; i<n; i++)
        delete [] a[i];
delete [] a;
Lana937
1 / 1 / 0
Регистрация: 28.10.2010
Сообщений: 46
18.05.2011, 19:10  [ТС]     динамическое выделение #6
а как быть в случае с одномерным массивом?
т.е. он в ошибке пишет на :
C++
1
2
 for(int i=0;i<m;i++)  
  {   for(int j=0;j<n;j++) {z[c]=a[i][j]; c++;}  };
как:"недопустимый индекс"..

Добавлено через 1 минуту
это по второму заданию.
выходит я неправильно задала массив?

Добавлено через 13 минут
помогите,пожалуйста, разобраться со вторым заданием?
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
18.05.2011, 21:19     динамическое выделение #7
Навскидку вместо
C++
1
int z[100];
Надо
C++
1
int *z = new int [m*n];
Ну и убрать всякие лишние z
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2011, 20:18     динамическое выделение
Еще ссылки по теме:

Динамическое выделение памяти C++
Динамическое выделение памяти C++
C++ динамическое выделение памяти new

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

Или воспользуйтесь поиском по форуму:
Lana937
1 / 1 / 0
Регистрация: 28.10.2010
Сообщений: 46
19.05.2011, 20:18  [ТС]     динамическое выделение #8
спасибо большое!) разобралась=)
Yandex
Объявления
19.05.2011, 20:18     динамическое выделение
Ответ Создать тему
Опции темы

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