Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 28.10.2010
Сообщений: 46
1

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

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

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

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2011, 18:27
Ответы с готовыми решениями:

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

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

Динамическое выделение памяти
Уважаемые программисты!!!! Подскажите как выделить память для двумерного массива. Заранее спасибо!!!

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

7
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
18.05.2011, 18:31 2
Блин! А что надо делать-то? Как сравнивать, если неизвестно, что должно получиться?!!!!
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
18.05.2011, 18:34 3
Цитата Сообщение от Lana937 Посмотреть сообщение
const int m=3,n=4; int y[m][n];
А при чём тут динамическое выделение памяти?
0
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
return (true);
1976 / 1111 / 221
Регистрация: 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
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
return (true);
1976 / 1111 / 221
Регистрация: 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
1 / 1 / 0
Регистрация: 28.10.2010
Сообщений: 46
19.05.2011, 20:18  [ТС] 8
спасибо большое!) разобралась=)
0
19.05.2011, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2011, 20:18
Помогаю со студенческими работами здесь

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

динамическое выделение имен
Есть такая проблема.. В базе имеются записи типа: Ф.И.О., пол, возраст, адрес, родственники(серии...

Динамическое выделение памяти
У меня есть двумерный булевый квадратный массив. После запуска программы, я получаю переменную...

Динамическое выделение памяти
Использовать динамическое выделение памяти для программы : #include &quot;stdafx.h&quot; #include...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru