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

Определить количество столбцов с неповторяющимися элементами в двумерном массиве - C++

Восстановить пароль Регистрация
 
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
23.10.2011, 00:35     Определить количество столбцов с неповторяющимися элементами в двумерном массиве #1
подскажите алгоритм для того, как посчитать столбцы, в которых все элементы отличаются(с неповторяющимися элементами) для Си
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2011, 00:35     Определить количество столбцов с неповторяющимися элементами в двумерном массиве
Посмотрите здесь:

найти минимальные элементы столбцов в двумерном массиве C++
C++ Сортировка столбцов в двумерном массиве
Нужно определить, есть ли в двумерном массиве столбец, в котором равное количество положительных и отрицательных элементов C++
C++ В двумерном массиве найти среднее арифметическое первого столбца и количество элементов в каждом из следующих столбцов
C++ В двумерном массиве определить количество строк, не содержащих отрицательных элементов
C++ Различное количество строк и столбцов в двумерном массиве
C++ Замена столбцов в двумерном массиве
C++ Поиск элементов строк и столбцов в двумерном массиве

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
24.10.2011, 10:49     Определить количество столбцов с неповторяющимися элементами в двумерном массиве #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
#include <stdio.h>
 
#define ROWS 5
#define COLS 5
 
int main() {
    int matrix[ROWS][COLS] = { 0 };
    int unique_cnt = 0;
    int unique = 0;
    int i = 0;
    int j = 0;
    int k = 0;
 
    for (i = 0; i < ROWS; ++i) {
        for (j = 0; j < COLS; ++j)
            scanf("%d", &matrix[i][j]);
    }
 
    for (j = 0; j < COLS; ++j) {
        unique = 1;
        for (i = 0; i < ROWS && unique; ++i) {
            k = i + 1;
            while (k < ROWS && matrix[i][j] != matrix[k][j]) 
                ++k;
 
            unique = (k == ROWS);
        }
 
        unique_cnt += unique;
    }
 
    for (i = 0; i < ROWS; ++i) {
        for (j = 0; j < COLS; ++j)
            printf("%2d ", matrix[i][j]);
        printf("\n");
    }
 
    printf("unique cols = %d\n", unique_cnt);
    return 0;
}
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
24.10.2011, 11:36  [ТС]     Определить количество столбцов с неповторяющимися элементами в двумерном массиве #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
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
#define n1 5
#define m1 10
#define n2 7
#define m2 11
#define MAX_n 7
#define MAX_m 11
 
int mas_ind(int mas[][MAX_m],int,int);
int mas_rad(int *mas,int,int);
 
int main() {
int i, j, n,m,BLA,BLA2;
int mas[MAX_n][MAX_m];
char answer;
 
//--------vibor massiva=> 5X10 ili 7X11----------------------//
while (1)
{
printf("Kakuju matricu ispoljzovatj?!\n\t1-5X10 \n\t2-7x11\n");
switch(getchar()) {
 case '1' :n=n1;
           m=m1;
            break;
 case '2': n=n2;
           m=m2;
           break;
 
 case'3': exit(0);
 break;
//------------------------------------------------------------//
                    default:
                    printf("oshibka...\n");
                    getch();
                    break;
                   }
}
        getchar();
 //--------vibor metoda zapolnenija massiva-------------------//
    printf("Budem zapolnjatj vruchnuju?!\n\t1-vru4nuju \n\t2-randomno\n");
    //--------------------------------------------------------//
    switch(getchar())
    {              //----------------------------------//
     while(answer!=1&&answer!=2) {
        case '1' : for(i=0; i<n; i++)
                   {
                     for(j=0; j<m; j++)
                     {
                       printf("mas[%d][%d]=", i+1,j+1);
                       scanf("%d",&mas[i][j]);
                     }
                   }
 
                   break;
                   //----------------------------------//
        case '2':  srand(time(0));
                   for(i = 0; i < n; i++)
                   {
                     for(j = 0; j < m; j++)
                     {
                       mas[i][j]= rand()%100;
                     }
                   }
 
                   break;
                   //----------------------------------------------//
        default:   printf("oshibka...\n");
                   printf("mas[%d][%d]=%d\n", i+1, j+1, mas[i][j]);
                   }//konec cikla
 
    }//------------------------------------------------------------//
 
    for(i = 0; i < n; i++)
    {
        for(j=0; j<m; j++)
        {
            printf("%5i", mas[i][j]);
        }
 
        printf("\n");
    }
    
    BLA=mas_ind(mas,n,m);
    BLA2=(&mas[MAX_n][MAX_m],n,m);
    printf("koli4estvo stolbcov(indeks) = %i\n\n",BLA);
    printf("koli4estvo stolbcov(ukazatelj) = %i",BLA2);
    //-------------------------------//
        getch();
        
        return 0;
}
//-------------------------indeksi-----------------------------//
int mas_ind(int mas[][MAX_m],int n, int m)
{
  int i,j,ii,jap,kol;
  kol=0;
  for (j=0;j<m;j++)
  {
      jap=0;
      for (i=0;i<n;i++)
      {
          for (ii=i+1;ii<n;ii++)
          {
              if(mas[i][j]==mas[ii][j])
                {jap=1; break;
                }
          }
      }
      if (jap==0)
        kol++;
  }
  return kol;
}
 
//-------------------------ukazateli-----------------------------//
int mas_rad(int *mas,int n, int m)
{
  int i,j,ii,jap,kol;
  kol=0;
  for (j=0;j<m;j++)
  {
      jap=0;
      for (i=0;i<n;i++)
      {
          for (ii=i+1;ii<n;ii++)
          {
              if(*(mas+i+j*n)==*(mas+ii+j*n))
                {jap=1; break;
                }
          }
      }
      if (jap==0)
        kol++;
  }
  return kol;
}
Yandex
Объявления
24.10.2011, 11:36     Определить количество столбцов с неповторяющимися элементами в двумерном массиве
Ответ Создать тему
Опции темы

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