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

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

Войти
Регистрация
Восстановить пароль
 
Chelovek_ya
0 / 0 / 0
Регистрация: 20.02.2009
Сообщений: 7
#1

Все разные числа в матрице в первых k ячейках - C++

09.01.2011, 16:29. Просмотров 333. Ответов 4
Метки нет (Все метки)

Дана матрица, например m[100][100]. Определить в двумерном массиве есть ли хотя бы одна пара одинаковых чисел в первых k ячейках.
То есть если, например, k=102 то мы будет сравнивать числа первой строки и первые два числа второй строки.

Можете даже не компилировать задачу, а набрасать только сам алгоритм, буду очень признателен и поставлю большой +

Вот впринципе мой алгоритм, но у меня где-то ошибка Лучше конешно сначала набрасайте свой, т.к. в моем можете запутаться
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
d=0; n=0;
cin>>k;
    
        for (int x=0; x<100; ++x)
        {
            for (int y=0; y<100; ++y)
            {
                n+=1; n2=0; if (n>k) break;
                for (int x2=0; x2<100; ++x2)
                {
                    for (int y2=0; y2<100; ++y2) 
                    {
                        n2+=1; if (n2>k) break;
                        if (m[x][y]==m[x2][y2]) { if (((x!=x2) || (y!=y2)) || ((x!=x2) & (y!=y2))) { d=1; break; } }
                    }
                    if (d==1) break; if (n2>k) break;
                }
                if (d==1) break; 
            }
            if (d==1) break; if (n>k) break;
        } 
        
cout<<"\n"<<d; cin.ignore();
если есть одинаковые числа то d будет присвоено 1
if (d==1) break; это чтоб если нашел хотя бы одну пару одинаковых чисел - дальше не продолжал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2011, 16:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Все разные числа в матрице в первых k ячейках (C++):

Дано натуральное число n (n <= 9999). Учитывая все четыре цифры числа, определить, правильно, что оно содержит: все разные цифры - C++
Плиз срочно надо=) для Microsoft Visual Studio 2010 Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а...

В строку вводится 5,2,8 нужно чтобы все 3 числа попали в массив или разные переменные - C++
Здравствуйте. В строку вводится 5,2,8 нужно чтобы все 3 числа попали в массив или разные переменные. Например: а=5,в=2,с=8 для дальнейших...

в матрице, строку где все числа четные, расположить в обратном порядке. - C++
дана матрица целых чисел. строки, где все элементы четные, расположить в обратном порядке. помогите студенту получить зачет. 1 лаба...

Найти все числа из заданного массива, встречающиеся в матрице строго два раза - C++
1. Найти все числа из массива В, встречающиеся в матрице Астрого два раза.

Проверить истинность высказывания: "Все цифры данного трехзначного числа разные" - C++
3. Проверить истинность выражения: &quot;Все цифры данного трехзначного числа разные&quot;.

В заданной матрице найти все положительные нечётные числа строки, у которой второй элемент не кратен 3 - C++
Доборого времени суток! Ребя помогите пожалуйста, нужно переделать код. Мне требуется найти все положительные нечетные числа строки, у...

4
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
09.01.2011, 20:43 #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
/*
  Дана матрица, например m[100][100]. Определить в двумерном массиве 
  есть ли хотя бы одна пара одинаковых чисел в первых k ячейках.
*/
#include <cstdio>
#include <ctime>
#include <cstdlib>
 
bool HasSameInRange(int **array, int max_width, int max_elements) {
  for (int i = 0; i < max_elements-1; ++i)
    for (int j = i + 1; j < max_elements; ++j)
      if (array[i / max_width][i % max_width] == 
          array[j / max_width][j % max_width])
        return true;
  return false;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
 
  int rows = 10 + rand() % 3;
  int cols = 5 + rand() % 3;
 
  int **a_matrix = new int*[rows];
  for (int i = 0; i < rows; ++i) {
    a_matrix[i] = new int[cols];
    for (int j = 0; j < cols; ++j) {
      a_matrix[i][j] = rand() % 100;
      printf("%d ", a_matrix[i][j]);
    }
    printf("\n");
  }
 
  printf("%s", (HasSameInRange(a_matrix, cols, cols + rand() % cols)) ? "Yes, it does." : "No, it does not.");
 
  for (int i = 0; i < rows; ++i)
    delete a_matrix[i];
  delete [] a_matrix;
  
  int key;
  scanf("%d", &key);
  return 0;
}
1
Chelovek_ya
0 / 0 / 0
Регистрация: 20.02.2009
Сообщений: 7
10.01.2011, 12:07  [ТС] #3
Какая переменная определяет до какой ячейки сравнивать?
А так спасибо большое, как тыркнуть +?))
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
10.01.2011, 12:57 #4
Chelovek_ya, кнопка "Спасибо" под сообщением
1
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
10.01.2011, 15:30 #5
Цитата Сообщение от Chelovek_ya Посмотреть сообщение
Какая переменная определяет до какой ячейки сравнивать?
Второй параметр функции HasSameInRange.
1
10.01.2011, 15:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2011, 15:30
Привет! Вот еще темы с ответами:

Найти все четырехзначные числа у которых сумма первых двух цифр равна сумме двух последних - C++
найти все четырехзначные числа у которых сумма первых двух цифр равна сумме двух последних.

Массив из 12 ячеек заполнить рандом, заменить нули в ячейках с четным индексом на 1 в ячейках с нечетным на -1 - C++
Массив из 12 ячеек, заполнить рандомно числами в диапазоне от -30 до 30. Заменить нули в ячейках с четным индексом на 1, в ячейках с...

В матрице размером N*M упорядочить строки по возрастанию их первых эле-ментов - C++
Вводится массив, почему-то не работает сортировка #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include...

Напишите функцию, которая принимает два целых числа n и k и возвращает число, содержащее k первых цифр числа n - C++
Помогите решить задание. Вот условие: Напишите функцию, которая принимает два целых числа n и k и возвращает число, содержащее k первых...


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

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

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