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

Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n) - C++

Восстановить пароль Регистрация
 
КаринаТ_Т
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 29
12.02.2014, 22:01     Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n) #1
Помогите,пожалуйста,переделать с VBA на Си ,или же составить программу без всяких оптимизаций,просто,что бы работала. Вот задача :Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n)
А вот сам код
Visual Basic
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
Sub Кнопка1_щелчек()
Cells.Clear
    Dim Matr() As Integer
    Dim i, j, k, p As Integer
    Dim n, m As Long
    Dim c() As Integer
 'задаем произвольную матрицу
     n = InputBox("Введите количество строк", , 4)
     If n = "" Then Exit Sub
    m = InputBox("Введите количество столбцов", , 4)
    ReDim Matr(1 To n, 1 To m)
    'заполнение массива матрицы случайными числами
    For i = 1 To n
     For j = 1 To m
       Matr(i, j) = Int(Rnd() * 10) + 1
       Cells(i, j) = Matr(i, j)
      Next j
    Next i
    'задаем массив чисел, которые хотим проверить
    k = j
    ReDim a(1 To m)
    For k = 1 To m
        a(k) = Int(Rnd() * 10) + 1
        Cells(n + 2, k) = a(k)
        'Val (InputBox("Введите" & k & "-е" & " число массива"))
    Next k
    Cells(n + 2, m + 1) = "Числа для проверки"
    'проверить строки матрицы на совпадения
    For l = 1 To m
    kol = 0
      For i = 1 To n
        For j = 1 To m
            If Matr(i, j) = a(l) Then
              kol = kol + 1
              Exit For
            End If
        Next j
      Next i
      Cells(n + 3, l) = kol
    Next l
    Cells(n + 3, m + 1) = "В скольких строках встретилось"
End Sub
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2014, 22:01     Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n)
Посмотрите здесь:

Все элементы вектора, которые встречаются более одного раза, переписать в другой вектор C++
C++ Одномерный массив А суммируется из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза
Подсчёт слов в строке и вывод тех, которые встречаются более n раз C++
Многомерные массивы. Найти и напечатать числа, которые встречаются в массиве более одного раза C++
Найти и напечатать числа, которые встречаются в массиве более одного раза C++
Найти все символы, которые встречаются в строке более двух раз C++
Исключить из файла все слова, которые встречаются более одного раза C++
Выделить в другой массив все числа, которые встречаются более одного раза в исходном C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bradobrei
Продам уран 238U
 Аватар для bradobrei
119 / 119 / 23
Регистрация: 22.01.2013
Сообщений: 298
13.02.2014, 09:13     Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n) #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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
#define n 10
#define m 5
 
int main(){
    int B[n], A[m][n];
    int count;
    srand(time(NULL));
    cout<<"B: ";
    for(int i = 0; i < n; i++){
        B[i] = rand()% 15 - 3;
        cout<<B[i]<<" ";
    }
    cout<<endl<<"A: "<<endl;
    for(int i = 0; i < m; i++){
        for(int j = 0; j < n; j++){
            A[i][j] = rand()% 30 - 5;
            cout<<A[i][j]<<" ";
        }
    cout<<endl;
    }
    cout<<endl<<"Elements: ";
    for(int k = 0; k < n; k++){
        count = 0;
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++){     
                if(B[k] == A[i][j]){
                    count ++;
                    break;
                }
            }
        if(count > 1){
            cout<<B[k]<<" ";
            break;
        }
        }
    }
        
return 0;
}
Yandex
Объявления
13.02.2014, 09:13     Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n)
Ответ Создать тему
Опции темы

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