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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
Prosroma
0 / 0 / 0
Регистрация: 31.03.2010
Сообщений: 28
#1

Динамические Массивы - C++

23.06.2010, 17:57. Просмотров 2233. Ответов 2
Метки нет (Все метки)

Выручайте ребята
1. Сформировать динамический одномерный массив, заполнить его случайными числами и вывести на печать.
2. Удалить все четные элементы и вывести полученный массив на печать.
3. Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать.
4. Добавить К строк, начиная со строки с номером N и вывести полученный массив на печать.

Добавлено через 22 минуты
И по теме двухмерные массивы если можно:
1. Дана целочисленная матрица размера M × N. Найти номер первой из ее строк, содержащих равное количество положительных и отрицательных элементов (нулевые элементы матрицы не учитываются). Если таких строк нет, то вывести 0.

2. Дана матрица размера M × N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех ее элементов.
----
нужно на завтра срочно,выручайте плиз

Добавлено через 19 минут
Функции в С++
--
1. Используя функции сформировать одномерный массив и вывести его на печать.
2. Удалить из массива все элементы, большие среднего арифметического значения. Определить в массиве количество простых и совершенных чисел до и после удаления.
, используя функции, результат вывести на печать.
3. Используя функции сформировать двумерный массив и вывести его на печать.
4. В матрице Y(m,m) найти максимальный элемент max1, находящийся на периметре матрицы, и максимальный элемент max2 вне периметра матрицы,используя функции, результат вывести на печать.
5. Ввести с клавиатуры строку символов и оУдалить все гласные буквы из строки, используя функции.
--
Хранение данных на внешних носителях
--
1. Используя ввод-вывод в стиле С создать файл и записать в него структурированные данные.
2. Вывести созданный файл на экран.
3. Удалить элемент с заданным номером.
4. Добавить K элементов в конец файла.
5. Вывести измененный файл на экран.

Структура "Владелец автомобиля":
- фамилия, имя, отчество;
- номер автомобиля;
- номер техпаспорта;
- отделение регистрации ГАИ.

Выручайте
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2010, 17:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамические Массивы (C++):

Динамические массивы и функции. Динамические массивы. - C++
Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий элементы матрицы, кратные числу, введенному с клавиатуры.

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

динамические массивы - C++
Здравствуйте, Посмотрите ,пожалуйста,задачу! ...

динамические массивы - C++
здравствуйте, посмотрите,пожалуйста, что не так с моим кодом? пробую использовать динамический массив. Но программа работает неправильно....

Динамические массивы - C++
помогите,пожалуйста,над срочно написать прогу))))буду оч благодарна)))))))) 1. Сформировать динамический одномерный массив, заполнить...

Динамические массивы - C++
1. Заданы два массива А(N) и В(M). Подсчитать в них количество отрицательных элементов и первым на печать вывести массив, имеющий...

2
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
23.06.2010, 19:42 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <stdio.h>
#include <stdlib.h>
 
/* Сформировать динамический одномерный массив, заполнить его случайными числами и вывести на печать. */
 
int main()
{
   int i = 0;
   int size = 0;
   int *arr;
 
   printf("enter size of array: ");
   scanf("%d", &size);
 
   if((arr = (int*)malloc(size * sizeof(int))) == NULL) {
      perror("memory allocated error");
      abort();
   }
 
   for(i = 0; i < size; ++i)
      arr[i] = rand() % 9;
 
   for(i = 0; i < size; ++i)
      printf("%d, ", arr[i]);
   printf("\n");
 
   free(arr);
 
   system("pause");
   return 0;
}


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
#include <stdio.h>
#include <stdlib.h>
 
/* Удалить все четные элементы и вывести полученный массив на печать. */
 
int main()
{
   int i        = 0;
   int j        = 0;
   int size     = 0;
   int *arr     = 0;
   int *odd_arr = 0;
 
   printf("enter size of array: ");
   scanf("%d", &size);
 
   if((arr = (int*)malloc(size * sizeof(int))) == NULL) {
      perror("memory allocated error");
      abort();
   }
 
   for(i = 0; i < size; ++i)
      arr[i] = rand() % 9;
 
   printf("\nany array\n");
   for(i = 0; i < size; ++i)
      printf("%d, ", arr[i]);
   printf("\n");
 
   /* здесь начинается вычисление нового массива, содержащего нечетные элементы
      вышенаписанный код аналогичен коду из первой задачи                        */
 
   printf("\nodd array\n");
   for(i = 0, j = 0; i < size; ++i)
   {
      if(arr[i] & 1)
      {
         if((odd_arr = (int*)realloc(odd_arr, ++j * sizeof(int))) == NULL) {
            perror("memory allocated error");
            abort();
         }
         odd_arr[j-1] = arr[i];
      }
   }
 
   for(i = 0; i < j; ++i)
      printf("%d ", odd_arr[i]);
   printf("\n\n");
 
   free(arr);
   free(odd_arr);
 
   system("pause");
   return 0;
}


3. Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать.

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
#include <stdio.h>
#include <stdlib.h>
 
/* Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать. */
 
int main()
{
   int i        = 0;
   int j        = 0;
   int col      = 0;
   int row      = 0;
   int **matrix = 0;
 
   printf("enter rows: ");
   scanf("%d", &row);
 
   printf("enter columns: ");
   scanf("%d", &col);
 
   if((matrix = (int**)malloc(row * sizeof(int))) == NULL) {
      perror("memory allocated error");
      abort();
   }
 
   for(i = 0; i < row; ++i)
   {
      if((matrix[i] = (int*)malloc(col * sizeof(int))) == NULL) {
         perror("memory allocated error");
         abort();
      }
   }
 
   for(i = 0; i < row; ++i)
      for(j = 0; j < col; ++j)
         matrix[i][j] = rand() % 9;
 
   for(i = 0; i < row; ++i) {
      for(j = 0; j < col; ++j)
         printf("%d, ", matrix[i][j]);
      printf("\n");
   }
 
   for(i = 0; i < row; ++i)
      free(matrix[i]);
   free(matrix);
 
   system("pause");
   return 0;
}


4. Добавить К строк, начиная со строки с номером N и вывести полученный массив на печать.
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
#include <stdio.h>
#include <stdlib.h>
 
/* Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать. 
   Добавить К строк, начиная со строки с номером N и вывести полученный массив на печать.            */
 
int main()
{
   int i            = 0;
   int j            = 0;
   int k            = 0;
   int n            = 0;
   int col          = 0;
   int row          = 0;
   int new_col      = 0;
   int new_row      = 0;
   int **matrix     = 0;
   int **new_matrix = 0;
 
   printf("enter rows: ");
   scanf("%d", &row);
 
   printf("enter columns: ");
   scanf("%d", &col);
 
   if((matrix = (int**)malloc(row * sizeof(int))) == NULL) {
      perror("memory allocated error");
      abort();
   }
 
   for(i = 0; i < row; ++i)
   {
      if((matrix[i] = (int*)malloc(col * sizeof(int))) == NULL) {
         perror("memory allocated error");
         abort();
      }
   }
 
   for(i = 0; i < row; ++i)
      for(j = 0; j < col; ++j)
         matrix[i][j] = rand() % 9;
 
   for(i = 0; i < row; ++i) {
      for(j = 0; j < col; ++j)
         printf("%d, ", matrix[i][j]);
      printf("\n");
   }
 
   /* здесь начинается вычисление нового массива
      вышенаписанный код аналогичен коду из третьей задачи */
 
   printf("enter \"K\": ");
   scanf("%d", &k);
 
   printf("enter \"N\": ");
   scanf("%d", &n);
 
   new_row = row + k;
   new_col = col;
 
   if((new_matrix = (int**)malloc(new_row * sizeof(int))) == NULL) {
      perror("memory allocated error");
      abort();
   }
 
   for(i = 0; i < new_row; ++i)
   {
      if((new_matrix[i] = (int*)malloc(new_col * sizeof(int))) == NULL) {
         perror("memory allocated error");
         abort();
      }
   }  
 
   for(i = 0; i < n; ++i)
      for(j = 0; j < col; ++j)
         new_matrix[i][j] = matrix[i][j];
 
   for(i = n; i < n + k; ++i)
      for(j = 0; j < new_col; ++j)
         new_matrix[i][j] = 0;
 
   for(i = n; i < row; ++i)
      for(j = 0; j < col; ++j)
         new_matrix[i+k][j] = matrix[i][j];
 
   printf("\nnew matrix\n");
   for(i = 0; i < new_row; ++i) {
      for(j = 0; j < new_col; ++j)
         printf("%d, ", new_matrix[i][j]);
      printf("\n");
   }
   printf("\n");
 
   for(i = 0; i < row; ++i)
      free(matrix[i]);
   free(matrix);
 
   for(i = 0; i < new_row; ++i)
      free(new_matrix[i]);
   free(new_matrix);
 
   system("pause");
   return 0;
}


1. Дана целочисленная матрица размера M × N. Найти номер первой из ее строк, содержащих равное количество положительных и отрицательных элементов (нулевые элементы матрицы не учитываются). Если таких строк нет, то вывести 0.
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
#include <stdio.h>
#include <stdlib.h>
 
/* Дана целочисленная матрица размера M Г— N. 
   Найти номер первой из ее строк, содержащих равное количество положительных 
   и отрицательных элементов (нулевые элементы матрицы не учитываются). 
   Если таких строк нет, то вывести 0.  */
 
int main()
{
   int i            = 0;
   int j            = 0;
   int col          = 0;
   int row          = 0;
   int positive     = 0;
   int negative     = 0;
   int indexstr     = 0;
   int **matrix     = 0;
 
   printf("enter rows: ");
   scanf("%d", &row);
 
   printf("enter columns: ");
   scanf("%d", &col);
 
   if((matrix = (int**)malloc(row * sizeof(int))) == NULL) {
      perror("memory allocated error");
      abort();
   }
 
   for(i = 0; i < row; ++i)
   {
      if((matrix[i] = (int*)malloc(col * sizeof(int))) == NULL) {
         perror("memory allocated error");
         abort();
      }
   }
 
   for(i = 0; i < row; ++i)
      for(j = 0; j < col; ++j)
         matrix[i][j] = rand() % 9;
 
   for(i = 0; i < row; ++i) {
      for(j = 0; j < col; ++j)
         printf("%d, ", matrix[i][j]);
      printf("\n");
   }
 
   /* вышенаписанный код аналогичен коду из третьей задачи */
 
   for(i = 0; i < row; ++i)
   {
      negative = 0;
      positive = 0;
 
      for(j = 0; j < col; ++j)
      {
         if(matrix[i][j] < 0)
            ++negative;
         else if(matrix[i][j] > 0)
            ++positive;
      }
 
      if(negative == positive) {
         indexstr = i;
         break;
      }
   }
 
   printf("\nfound string has index: %d\n", indexstr);
 
   for(i = 0; i < row; ++i)
      free(matrix[i]);
   free(matrix);
 
   system("pause");
   return 0;
}


2. Дана матрица размера M × N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех ее элементов.
Вот эта задача не совсем правильная с точки зрения подхода.
Во-первых, неправильно считать среднее арифметическое значение как целое число.
Во-вторых, подход к вычислению ближайшего по значению числа ну вообще детский.
А так как мне думать и стараться не хочется особенно, то держи как есть.
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
#include <stdio.h>
#include <stdlib.h>
 
/* Дана матрица размера M Г— N. 
   Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех ее элементов. */
 
int main()
{
   int i            = 0;
   int j            = 0;
   int tmp1         = 0;
   int tmp2         = 0;
   int col          = 0;
   int row          = 0;
   int avg          = 0;
   int indexcol     = 0;
   int indexrow     = 0;
   int **matrix     = 0;
 
   printf("enter rows: ");
   scanf("%d", &row);
 
   printf("enter columns: ");
   scanf("%d", &col);
 
   if((matrix = (int**)malloc(row * sizeof(int))) == NULL) {
      perror("memory allocated error");
      abort();
   }
 
   for(i = 0; i < row; ++i)
   {
      if((matrix[i] = (int*)malloc(col * sizeof(int))) == NULL) {
         perror("memory allocated error");
         abort();
      }
   }
 
   for(i = 0; i < row; ++i)
      for(j = 0; j < col; ++j)
         matrix[i][j] = rand() % 9;
 
   for(i = 0; i < row; ++i) {
      for(j = 0; j < col; ++j)
         printf("%d, ", matrix[i][j]);
      printf("\n");
   }
 
   /* вышенаписанный код аналогичен коду из третьей задачи */
 
   for(i = 0; i < row; ++i)
      for(j = 0; j < col; ++j)
         avg += matrix[i][j];
   avg /= row * col;
 
   tmp1 = abs(matrix[0][0] - avg);
   for(i = 0; i < row; ++i)
   {
      for(j = 0; j < col; ++j)
      {
         tmp2 = abs(matrix[i][j] - avg);
         if(tmp2 < tmp1)
         {
            indexrow = i;
            indexcol = j;
            tmp1 = tmp2;
         }
      }
   }
 
   printf("\navg: %d\n", avg);
   printf("\nfound index:\n"
          "row = %d\n"
          "col = %d\n",
          indexrow, indexcol);
 
   for(i = 0; i < row; ++i)
      free(matrix[i]);
   free(matrix);
 
   system("pause");
   return 0;
}


Цитата Сообщение от Prosroma Посмотреть сообщение
Используя функции
функции нужны самописные или можно пользоваться STL?
4
Prosroma
0 / 0 / 0
Регистрация: 31.03.2010
Сообщений: 28
23.06.2010, 20:09  [ТС] #3
Цитата Сообщение от fasked Посмотреть сообщение
функции нужны самописные или можно пользоваться STL?
Самописные
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2010, 20:09
Привет! Вот еще темы с ответами:

Динамические массивы - C++
Суть задания такова. Создается динамический массив А, заполняется элементами. Затем создается массив B, куда записываются все элементы...

Динамические массивы - C++
Дана целочисленная матрица размером N. Найти сумму наименьших элементов ее нечетных строк и наибольших элементов ее четных строк. Нужно...

Динамические массивы - C++
Подскажите, как найти в одномерном динамическом массиве номер первого элемента, на котором произошла смена знака?(язык Си)

Динамические массивы... - C++
Помогите пожалуйста.... Дано матрицу размерностью N * М с произвольных многочисленных элементов. Найти элементы, которые по модулю меньше...


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

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

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