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

Дано матрицу A (3,4). Вывести номера столбцов и строк, где находится третий и пятый парные элементы этой матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерные векторы http://www.cyberforum.ru/cpp-beginners/thread765008.html
При компиляции программы двумерного вектора, программа крашится. Может с двумерными векторами не правильно взаимодесйтвую? Если так, то как правильно? #include <iostream> #include <vector> using...
C++ Запись классов, структур в файл Подскажите как правильно, записывать и читать данные с файла, особенно если записываются данные разных типов) Работает но как то не всегда такая запись ofstream outf("file.txt",ios::binary);... http://www.cyberforum.ru/cpp-beginners/thread765005.html
C++ Почему не проходит обращение к структуре?
#include <iostream> #include <string> using namespace std; int main() { const int size = 10; int z = 0;
Вычислить сумму ненулевых элементов, кратных 5; упорядочить элементы второго столбца по убыванию C++
Помогите написать 2 функции в массиве,пожалуйста,очень нужно для экзамена!))) -вычислить сумму ненулевых элементов, кратных числу 5; -упорядочить элементы второго столбца по убыванию
C++ Почему возникает утечка памяти? http://www.cyberforum.ru/cpp-beginners/thread764956.html
Возник вопрос почему может возникать утечка памяти. Интересуют основные правила для их устранения. На каждый new и malloc нужен delete и free? Каждый класс нужно удалять (через деструктор). А что...
C++ Описать функциюю f(a, n, p), определяющую, упорядочены ли строго по возрастанию элементы в целочисленном массиве Помогите описать функциюю f(a, n, p), определяющую, упорядочены ли строго по возрастанию элементы в целочисленном массиве a из n элементов, и вычисляющую целочисленное значение p. Если элементы... подробнее

Показать сообщение отдельно
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
19.01.2013, 09:11
Сделал так, как понял.

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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <stdio.h>
#include <malloc.h> // malloc()/free()
#include <stdlib.h> // rand()
#include <time.h> // time()
 
 
// размерности матрицы
#define X 3
#define Y 4
 
// выделение памяти под матрицу
int** create_matrix(int x1, int y1)
{
 int i;
 int **m;
 m = (int **) malloc(x1 * sizeof(int*) );
 for(i=0;i<x1;i++)
 {
  m[i] = (int *) malloc(y1 * sizeof(int) );
 }
 return m;
}
 
// заполнение матрицы случайными числами
void rand_matrix(int** m, int x1, int y1)
{
 int i,j;
 srand(time(NULL));
 for(i=0;i<x1;i++)
 {
  for(j=0;j<y1;j++)
  {
    m[i][j] = rand()%9;
  }
 }
 
}
 
// вывод матрицы
void print_matrix(int** m, int x1, int y1)
{
 int i,j;
 for(i=0;i<x1;i++)
 {
  for(j=0;j<y1;j++)
  {
    printf("%d ", m[i][j]);
  }
  printf("\n");
 }
}
 
// Считаем, что парный элемент это элемент, 
// который встречается в матрице более 1 раза
 
void _f1(int** m, int x1, int y1)
{
 int m1[X*Y];
 int i, j, k,l;
 int en, f1, f2;
 int m1_i;
 int h;
 en = 0;
 m1_i = 0;
 for(i=0;i<x1;i++)
 {
  for(j=0;j<y1;j++)
  {
 
    // проверяем, есть ли в матрице аналогичный элемент
    f1 = 0; // флаг, показывающий, есть ли в матрице аналогичный элемент
    for(k=i;k<x1;k++)
    {
      for(l=j+1;l<y1;l++)
      {
        if(m[k][l] == m[i][j]) 
         f1 = 1;
      }
    }
 
    // если нашелся аналогичный элемент
    if (f1 == 1)
    {
      en++; //считаем номер элемента
      f2 = 0; // флаг, показывающий занесенли элемент в массив
      for(h=0;h<m1_i;h++)
      {
        if (m1[h] == m[i][j])
         f2 = 1; // если 1 значит элемент встречается в раз больше 2
      }
      // если элемента в массиве нет
      if (f2 == 0)
      {
       m1[m1_i] = m[i][j]; // заносим элемент в массив
       m1_i++; // счетчик количества элементов в массиве
       // элементов, встречающихся в матрице более 1 раза
      }
      f2 = 0; // обнуление флага
    }
    f1 = 0; // обнуление флага
  }
  ;
 }
 // вывод элементов, которые встречаются в матрице более 1 раза
 for(h=0;h<m1_i;h++)
 {
   printf("%d ", m1[h]);
 }
 printf("\n");
 
 // выводим 3 и 5 элементы, которые встречаются в матрице более 1 раза
 for(h=0;h<m1_i;h++)
 {
   if(h == 2 || h == 4) 
    for(i=0;i<x1;i++)
    {
     for(j=0;j<y1;j++)
     { 
       if ( m[i][j] == m1[h])
       {
        printf("i:%d j:%d\n", i, j);
       }
     }
    }
 }
 
}
 
 
 
int main()
{
 
int i;
int **m;
m = create_matrix(X, Y);
rand_matrix(m, X, Y);
print_matrix(m, X, Y);
_f1(m, X, Y);
 
// освобождение памяти выделенной под матрицу
for(i=0;i<X;i++)
 free(m[i]);
free(m);
 
return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru