Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 15
1

Известно, что среди элементов массива два и только два равны между собой. Напечатать их индексы

15.05.2013, 09:37. Показов 3550. Ответов 21
Метки нет (Все метки)

Дан массив А[1..3, 1..15]. Известно, что среди его элементов два и только два равны
между собой. Напечатать их индексы

Помогите)))пожалуйста
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2013, 09:37
Ответы с готовыми решениями:

Известно, что среди элементов массива два и только два равны между собой. Напечатать их индексы
Дан двумерный целочисленный массив А(2, N). Известно, что среди его элементов два и только два...

Дан целочисленный двумерный массив. Известно, что среди его элементов два и только два равны между собой. Напечатать их индексы
Часть программы выполнена, но не получается поставить верное условие для сравнения элементов в...

Проверить, что из введённых чисел x, y, z только два числа равны между собой
Не использую оператора if, присвоить переменной значение t значение 0, если из введённых чисел...

Дана последовательность целых чисел. Известно, что среди них несколько раз встречаются два подряд идущих нуля.
1. Дана последовательность целых чисел. Известно, что среди них несколько раз встречаются два...

21
101 / 102 / 43
Регистрация: 06.03.2012
Сообщений: 478
15.05.2013, 09:43 2
student_KNUBA, это как бы двумерный массив? кол-во строк от 1-3 и кол-во столбцов от 1-15?
1
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 15
15.05.2013, 09:44  [ТС] 3
да....все задачки сделал на курсовую остались пару которых не могу...
0
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
15.05.2013, 09:47 4
Цитата Сообщение от student_KNUBA Посмотреть сообщение
Дан массив А[1..3, 1..15]. Известно, что среди его элементов два и только два равны
между собой. Напечатать их индексы

Помогите)))пожалуйста
С такой нотацией иди к пасквилянтам, а на плюсах нет настоящих многомерных массивов, даже синонимичных массивам массивов и горизонтальное двоеточие не принято.
2
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 15
15.05.2013, 09:52  [ТС] 5
Цитата Сообщение от taras atavin Посмотреть сообщение
С такой нотацией иди к пасквилянтам, а на плюсах нет настоящих многомерных массивов, даже синонимичных массивам массивов и горизонтальное двоеточие не принято.
Проблема в том что именно на С++ нужно
0
Эксперт С++
3944 / 1799 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
15.05.2013, 10:29 6
Цитата Сообщение от taras atavin Посмотреть сообщение
а на плюсах нет настоящих многомерных массивов
Ну что за бред вы несете? В С++ присутствует возможность управлять памятью, так кто же мешает расположить подряд N элементов, вслед за которым расположить такую же пару? Или многомерный массив стал чем-то магическим?

Цитата Сообщение от taras atavin Посмотреть сообщение
и горизонтальное двоеточие не принято.
Диапазоны же! Стандартная нотация.

Цитата Сообщение от student_KNUBA Посмотреть сообщение
Дан массив А[1..3, 1..15]. Известно, что среди его элементов два и только два равны
между собой. Напечатать их индексы
А откуда появляются данные? Из файла? Случайным образом (тогда будут ли случаи, когда нет одинаковых значений)? Вводятся пользователем?

В общем, ваша задача сводится к двойному проходу по массиву.
Компилятора под рукой нет, на коленке накидал примерно следующее решение:
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
#include <iostream>
 
int main()
{
  const int x = 3, y = 15;
  int array[x][y];
  int elem1, elem2;
  
  // implement massive filling with values
 
  for (int i = 0; i < x; i++) {
    for (int j = 0; j < y; j++) {
      elem1 = array[i][j];
      for (int m = i; m < x; m++) {
        for (int n = j; n < y; n++) {
          elem2 = array[m][n];
          if (elem1 == elem2 && (i != m && j != n)) {
            std::cout << "Equal elementh's value = " << elem1 << std::endl;
            std::cout << "Elemenths indexes: [" << i << "][" << j << "], [" << m << "][" << n << "]" << std::endl;
            return 0;
          }
        }
      }
    }
  }
 
  return 0;
}
Вместо комментария добавьте получение значений, или предложение пользователю их ввести.
1
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
15.05.2013, 10:41 7
Цитата Сообщение от MikeSoft Посмотреть сообщение
Ну что за бред вы несете? В С++ присутствует возможность управлять памятью, так кто же мешает расположить подряд N элементов, вслед за которым расположить такую же пару? Или многомерный массив стал чем-то магическим?
А при чём здесь память? Какое она вообще имеет отношение к синтаксису оператора []?

Добавлено через 26 секунд
Цитата Сообщение от MikeSoft Посмотреть сообщение
Диапазоны же! Стандартная нотация.
Для паскаля стандартная.
1
Эксперт С++
3944 / 1799 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
15.05.2013, 11:02 8
Цитата Сообщение от taras atavin Посмотреть сообщение
А при чём здесь память? Какое она вообще имеет отношение к синтаксису оператора []?
Добавлено через 26 секунд
Для паскаля стандартная.
Синтаксис? А ничего, что задание пишут на понятном языке, а не на языке программирования? Заказчик может вообще не знать, как представлены массивы в том, или другом ЯП, его мало это интересует.
Зачем нужен вот этот оффтоп? Что изменилось бы от того, что задание было бы написано так:
Цитата Сообщение от student_KNUBA Посмотреть сообщение
Дан массив А[3][15]. Известно, что среди его элементов два и только два равны
между собой. Напечатать их индексы
? Ничего! Задание как было, так и осталось. И не важно, есть там диапазон или нет, что называют массивом, как он записан и т.д...
1
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 15
15.05.2013, 11:53  [ТС] 9
Всем большое спасибо!!!!
0
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
15.05.2013, 11:57 10
Цитата Сообщение от MikeSoft Посмотреть сообщение
Синтаксис? А ничего, что задание пишут на понятном языке, а не на языке программирования? Заказчик может вообще не знать, как представлены массивы в том, или другом ЯП, его мало это интересует.
Тогда откуда тот заказчик знает про квадратные скобки? Если бы было написано полностью по-русски, я бы не постил, но ТС использовал нотацию языка программирования.
1
Эксперт С++
3944 / 1799 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
15.05.2013, 12:02 11
Цитата Сообщение от taras atavin Посмотреть сообщение
Тогда откуда тот заказчик знает про квадратные скобки?
Что-то мне подсказывает, что с уроков математики
Но опять же, что это меняет?

Предлагаю прекратить оффтоп! Обсуждение правильности написания задания - не является темой, относящейся к разделу, посвященному С++.
1
4200 / 1792 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
15.05.2013, 12:06 12
Цитата Сообщение от MikeSoft Посмотреть сообщение
Что-то мне подсказывает, что с уроков математики
Но опять же, что это меняет? Предлагаю прекратить оффтоп! Обсуждение правильности написания задания - не является темой, относящейся к разделу, посвященному С++.
В математике нет такой нотации массива. Если бы с математики, то было бы хотя бы https://www.cyberforum.ru/cgi-bin/latex.cgi?A_{1..3,1..15}. А если ТС хочет, чтоб массив индексировался именно через запятую в одних скобках, то ему в раздел паскаля.
1
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 15
15.05.2013, 15:48  [ТС] 13
Всеравно всем спасибо кто помог советом или комментариям...

Добавлено через 8 минут
Хотя что-то не сильно получается ее доделать
0
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 15
19.05.2013, 17:06  [ТС] 14
Дан массив А[1..3, 1..15]. Известно, что среди его элементов два и только два равны
между собой. Напечатать их индексы
0
18 / 18 / 11
Регистрация: 19.05.2013
Сообщений: 135
19.05.2013, 17:31 15
при первом нахожению таких эелементов выходим из цыкла, если я правильно понял задачу
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
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
   int *mas,n;
   cout<<"n = "; cin>>n;
   mas = new int [n];
   for (int i=0;i<n;i++)
      {
         cout<<"a["<<i+1<<"]= ";
         cin>>mas[i];
      }
   for (int i=0;i<n;i++)
      {
         int count=0,tmp=0;
         for (int l=0;l<n;l++)
             if (mas[i]==mas[l])
               {
                count ++;
                tmp=l-i;
               };
         if (count==2)
            cout<<"a["<<i+1<<"] = a["<<i+tmp+1<<"]\n";
            break;
      };
   system("pause");
   return 0;
}
0
Mobile Software Engineer
Эксперт С++
5364 / 1583 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
19.05.2013, 17:39 16
henecs,
Цитата Сообщение от student_KNUBA Посмотреть сообщение
Дан массив А[1..3, 1..15]
1
101 / 102 / 43
Регистрация: 06.03.2012
Сообщений: 478
19.05.2013, 18:00 17
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
#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL,"Russian");
 
    int **massiv,temp = 0,str,stb;
 
    cout<<"Введите колличетсво строк и стобцов: ";
    cin>>str>>stb;
 
    massiv = new int *[str];
        for (int i = 0;i<str;i++)   
        {
            massiv[i] = new int [stb];
        }
 
        cout<<"Заполните массив: ";
            cout<<endl;
        for (int i = 0;i<str;i++)   {
            for (int j = 0;j<stb;j++)   {
                cin>>massiv[i][j];
                cout<<setw (3)<<massiv[i][j];
            }
            cout<<endl;
        }
 
        int it,jt,kt,lt;
        for (int i = 0;i<str;i++)   {
            for (int j = 0;j<stb;j++)   {
                for (int k = 0;k<str;k++)   {
                    for (int l = 0;l<stb;l++)   {
                        if (massiv[i][j] == massiv[k][l]){
                        temp++;
                        it = i;
                        jt = j;
                        kt = k;
                        lt = l;
                        }
                        if (temp == 2)
                        {
                cout<<"Индекс первого элемента: "<<it<<" "<<jt;
                    cout<<endl;
                cout<<"Индекс второго: "<<kt<<" "<<lt;
                    cout<<endl;
                        }
                    }
                }
            }
        }
 
 
    system ("pause");
    return 0;
}
1
18 / 18 / 11
Регистрация: 19.05.2013
Сообщений: 135
19.05.2013, 18:07 18
Цитата Сообщение от Ev[G
eN;4580689]Дан массив А[1..3, 1..15]
а это причем?
память под масив выделяеться динамически
0
Mobile Software Engineer
Эксперт С++
5364 / 1583 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
19.05.2013, 18:09 19
Цитата Сообщение от henecs Посмотреть сообщение
а это причем?
память под масив выделяеться динамически
при том, что в условии массив двумерный, а ты сделал одномерный
1
101 / 102 / 43
Регистрация: 06.03.2012
Сообщений: 478
19.05.2013, 18:09 20
henecs, массив должен быть двумерный,а у вас одномерный...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2013, 18:09

Известно, что среди элементов массива два и только два равны между собой. Напечатать их индексы
Дан одномерный целочисленный массив A(N). Известно, что среди его элементов два и только два равны...

Известно, что среди элементов массива два и только два равны между собой. Напечатать их индексы
Помогите, пожалуйста, решить задачу. Дан двухмерный целочисленный массив А размером nхm....

Известно, что среди его элементов два и только два равны между собой. Напечатать их индексы
привет всем)) плиз помогите решить задачу Дан массив А. Известно, что среди его элементов два и...

Дан целочисленный двумерный массив. Известно, что среди его элементов два и только два равны между собой. Напечатать их индексы
Программа частично сделана, но не могу поставить правильное условие на сравнение элементов...


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

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

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