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

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

Войти
Регистрация
Восстановить пароль
 
Lana937
1 / 1 / 0
Регистрация: 28.10.2010
Сообщений: 46
#1

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

18.05.2011, 18:27. Просмотров 377. Ответов 7
Метки нет (Все метки)

совсем запуталась в динамическом выделение памяти.. подскажите,верно ли решено??

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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2011, 18:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос динамическое выделение (C++):

Динамическое выделение - C++
Если кто может,дайте расшифровку этому: pprime = new long; *pprime = 2; *(pprime + 1) = 3; *(pprime + 2) = 5;этому: found =...

Динамическое выделение памяти - C++
Не могу разобраться с динамическим выделением памяти. Объект - учреждение. Имеет параметры - название, тип, год основания, количество...

Динамическое выделение памяти new - C++
Доброго времени. У меня в программе есть два двумерных динамических массива. Код компилируется, но возникает ошибка времени выполнения:...

Динамическое выделение памяти - C++
Дан такой код:#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { int a; // матрица 9 на 9 целочисленная...

Динамическое выделение памяти - C++
Доброго времени суток всем!:) Есть такая проблема... Дан класс полином. который содержит закрытые члены коэффициент и степень полинома, а...

Динамическое выделение памяти - C++
Объясните пожалуйста.Не могу понять в чём разница между malloc,calloc/free и new/delete

7
ValeryLaptev
Эксперт С++
1042 / 821 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
18.05.2011, 18:31 #2
Блин! А что надо делать-то? Как сравнивать, если неизвестно, что должно получиться?!!!!
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
18.05.2011, 18:34 #3
Цитата Сообщение от Lana937 Посмотреть сообщение
const int m=3,n=4; int y[m][n];
А при чём тут динамическое выделение памяти?
0
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) и т.д., заполнив таким образом главную диагональ.
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
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;
1
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 минут
помогите,пожалуйста, разобраться со вторым заданием?
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
18.05.2011, 21:19 #7
Навскидку вместо
C++
1
int z[100];
Надо
C++
1
int *z = new int [m*n];
Ну и убрать всякие лишние z
0
Lana937
1 / 1 / 0
Регистрация: 28.10.2010
Сообщений: 46
19.05.2011, 20:18  [ТС] #8
спасибо большое!) разобралась=)
0
19.05.2011, 20:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2011, 20:18
Привет! Вот еще темы с ответами:

Динамическое выделение памяти - C++
Почему распечатка матрицы Matr1 в f2 дает матрицу из ед., а в f1 матрицу из нулей? Ведь адрес первого эл. массива Matr2 сохранен в...

Динамическое выделение памяти - C++
Всем привет, читал про динам. выделение памяти и тут возник вопрос. Так как для новичков пишут книги не очень глубоко, то в книге ответа на...

динамическое выделение памяти - C++
дана целочисленная прямоугольная матрица. определить: 1) количество строк, не содержащих ни одного нулевого элемента; 2) максимальное...

Динамическое выделение памяти - C++
Всем привет. Научите, пожалуйста, правильно пользоваться динамическим выделением памяти. Допустим, у меня есть функция, где я пытался...


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

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

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