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

Массив из повторюящихся значений - C++

Восстановить пароль Регистрация
 
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.02.2011, 20:52     Массив из повторюящихся значений #1
Пусть дана матрица фиксированной размерности.Составит массиы из чисел,которые повторяются в этой матрице.
Помогите пожалуйста,не выходит.Массив не получается.только присваеивается все переменной...предыдущее значения исчезают(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2011, 20:52     Массив из повторюящихся значений
Посмотрите здесь:

C++ выбор недублируемых значений в массив
C++ Перекидывание значений из массива в массив
Вычислить y= k14− 18 k для 6 значений k, вводимых с клавиатуры. Результат вычислений записать в массив. Полученный массив отсортировать по возрастанию C++
C++ Как обьявить и инициализировать массив константных значений?
Заполнить массив из пяти значений цифрами (при объявлении) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
24.02.2011, 22:03     Массив из повторюящихся значений #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
#include <cstdio>
#include <ctime>
#include <cstdlib>
#include <map>
#include <vector>
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  const int k_array_size = 10;
  std::vector< std::vector<int> > array(k_array_size,
                                  std::vector<int>(k_array_size, 0));
  for (int i = 0; i < k_array_size; ++i) {
    for (int j = 0; j < k_array_size; ++j)
      printf("%3d", array[i][j] = rand() % 100);
    printf("\n");
  }
  printf("\n");
 
  std::map<int, int> numbers;
  for (int i = 0; i < k_array_size; ++i)
    for (int j = 0; j < k_array_size; ++j)
      ++numbers[array[i][j]];
 
  std::vector<int> result;
  for (std::map<int, int>::iterator i = numbers.begin();
       i != numbers.end(); ++i)
    if (i->second > 1)
      for (int j = 0; j < i->second; ++j)
        result.push_back(i->first);
 
  for (int i = 0; i < result.size(); ++i)
    printf("%3d", result[i]);
  printf("\n");
 
  return 0;
}
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
24.02.2011, 23:14  [ТС]     Массив из повторюящихся значений #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
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
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
const  m=3 ;
 
 
void MyInp(int M[][m], int n=3)
{ int i , j, x, y ;
  for(i=0, y=wherey()+1 ; i<n ; i++, y++ )
    for(j=0, x=10 ; j<m ; j++ , x+=5 )
      { gotoxy(x,y);
        cin>>M[i][j] ;
      }
}
 
 
void OutMatr(int M[][m], int n=3)
{ int i , j, x, y ;
  for(i=0, y=3+n ; i<n ; i++, y++ )
    for(j=0, x=10 ; j<m ; j++ , x+=5 )
      { gotoxy(x,y);
        cout<<M[i][j] ;
      }
}
 
 
 
void MyMax(unsigned n,int c1,int X[] , int& Mx)
{ Mx=X[0] ;
 for(int i=1 ; i<n ; i++)
  {if(X[i]>Mx)
     Mx=X[i];
   }
   textcolor(c1);
 cprintf("%d",Mx)
 }
 
 
 
MyPovtor(int M[][m],int *R, int n=3)
 {  int* p ;
     for(i=0; i<n ; i++,)
    for(j=0 ; j<m ; j++ )
           {  if(M[i][j]==t)
           t=M[i][j]
         }
      R[i]=t;
    }
   }
 
 
 
 
 
 
 
int main(int argc, char* argv[])
{  const n=3 ;
int A[n][m] ;
 MyInp(A) ;
 OutMatr(A) ;
 
  getch();
 
        return 0;
}
Добавлено через 56 секунд
lemegeton, спасибо...но я у вас вообще ничего не понимаю

Добавлено через 53 секунды
вот это бред какой-то...не знаю...как сделать эту функцию...для выбора повторяющихся элементов
C++
1
2
3
4
5
6
7
8
9
10
11
 
MyPovtor(int M[][m],int *R, int n=3)
 {  int* p ;
     for(i=0; i<n ; i++,)
    for(j=0 ; j<m ; j++ )
           {  if(M[i][j]==t)
           t=M[i][j]
         }
      R[i]=t;
    }
   }
Добавлено через 38 минут
Boт более разумное...но оно даже не компилиться...ПСОМОТРИТЕ ПОЖАЛУЙСТА!!!ОЧЕНЬ НАДО!!!

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 <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
const  m=3 ;
 
 
void MyInp(int M[][m], int n=3)
{ int i , j, x, y ;
  for(i=0, y=wherey()+1 ; i<n ; i++, y++ )
    for(j=0, x=10 ; j<m ; j++ , x+=5 )
      { gotoxy(x,y);
        cin>>M[i][j] ;
      }
}
 
 
void OutMatr(int M[][m], int n=3)
{ int i , j, x, y ;
  for(i=0, y=3+n ; i<n ; i++, y++ )
    for(j=0, x=10 ; j<m ; j++ , x+=5 )
      { gotoxy(x,y);
        cout<<M[i][j] ;
      }
}
 
 
 
 
MyPovtor(int M[][m],int *R, int n=3)
 {   int t=M[0][0] ;
     for(int i=0; i<m*n ; i++)
    for(int j=i+1 ; j<n*m ; j++ )
        if(M[i]==M[j])
        {   t=M[i] ;
 
      R[i]=t;
    }
   }
 
 
 
void MyMax(int c1,int X[] , int& Mx ,int n=3 )
{ Mx=X[0] ;
 for(int i=1 ; i<n ; i++)
  {if(X[i]>Mx)
     Mx=X[i];
   }
   textcolor(c1);
 cprintf("%d",Mx)  ;
 }
 
 
 
 
int main(int argc, char* argv[])
{  const n=3 ; int mumax;
int A[n][m] ;
int X[n*m];
 MyInp(A) ;
 OutMatr(A) ;
 MyPovtor(A,X) ;
  MyMax(10,X, mumax) ;
 
  getch();
 
        return 0;
}
Добавлено через 32 секунды
ВОТ ИМЕННО ЭТА ФУНКЦИЯ
C++
1
2
3
4
5
6
7
8
9
10
MyPovtor(int M[][m],int *R, int n=3)
 {   int t=M[0][0] ;
     for(int i=0; i<m*n ; i++)
    for(int j=i+1 ; j<n*m ; j++ )
        if(M[i]==M[j])
        {   t=M[i] ;
 
      R[i]=t;
    }
   }
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
25.02.2011, 00:10     Массив из повторюящихся значений #4
Так понятней? Правда, массив не составляется, а просто выводится на экран.
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  const int k_array_size = 5;
  int array[k_array_size][k_array_size];
 
  int i, j;
  for (i = 0; i < k_array_size; ++i) {
    for (j = 0; j < k_array_size; ++j)
      printf("%3d", array[i][j] = rand() % 10);
    printf("\n");
  }
  printf("\n");
 
  int result_size = 0;
  int result[k_array_size * k_array_size][2];
  for (i = 0; i < k_array_size * k_array_size; ++i)
    result[i][0] = result[i][1] = 0;
 
  for (i = 0; i < k_array_size; ++i)
    for (j = 0; j < k_array_size; ++j) {
      int key;
      for (key = 0; key < result_size; ++key)
        if (array[i][j] == result[key][0])
          break;
      if (key == result_size)
        result[result_size++][0] = array[i][j];
      ++result[key][1];
    }
 
 
  for (i = 0; i < result_size; ++i)
    if (result[i][1] > 1)
      for (j = 0; j < result[i][1]; ++j)
        printf("%3d", result[i][0]);
  printf("\n");
 
  return 0;
}
Yandex
Объявления
25.02.2011, 00:10     Массив из повторюящихся значений
Ответ Создать тему
Опции темы

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