Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

с++ задача с масивами

46K
19 марта 2009 года
zoja1739
3 / / 19.03.2009
Доброе время суток.помогите с решением в "c++".
1)В одномерном массиве ,состоящих из целых чисел ,есть только два одинаковых элемента.Найти их.
2)
дан двух ступенчетый масив из 15 строчек и 2 стопбцов. Найти минимальную сумму елементов в двух рядом стоящих строчках.
294
19 марта 2009 года
Plisteron
982 / / 29.08.2003
Цитата: zoja1739
Доброе время суток.помогите с решением в "c++".
1)В одномерном массиве ,состоящих из целых чисел ,есть только два одинаковых элемента.Найти их.
2)
дан двух ступенчетый масив из 15 строчек и 2 стопбцов. Найти минимальную сумму елементов в двух рядом стоящих строчках.


Это, вероятнее, в тему "Судентам".

1) В цикле от 1 до N - 1 (где N - длина массива) берём элемент и во вложенном цикле от следующего за текущим до N ищем такой же. Если нашли -- показали какой и где и вышли из циклов.

2) Что такое двухступенчатый массив, я не знаю, а для двухмерного массива X (сиречь матрица) размером M столбцов * N строк можно сделать примерно так.
Берем min = X(1, 1)
Первый цикл (скажем, по k) от 1 до N - 1
Второй цикл по j от 1 до M
Третий цикл по i от 1 до M
Если min > X(i, k) + X(j, k+ 1) то min = X(i, k) + X(j, k+ 1) и запоминаем координаты
кц
кц
кц
выводим координаты и значение суммы.

PS. а если у тебя много КЦ, то ты имеешь право носить малиновые штаны, и перед тобой и пацак, и чатланин должен два раза КУ делать, и эцилопп не имеет права бить тебя по ночам, никогда!

32K
19 марта 2009 года
Rififi
54 / / 04.06.2008
Цитата: zoja1739
Доброе время суток.помогите с решением в "c++".
1)В одномерном массиве ,состоящих из целых чисел ,есть только два одинаковых элемента.Найти их.


Код:
#include <map>
#include <iostream>
#include <stdexcept>

const int* find_dup(const int* p, size_t len)
{
    typedef std::map<int, bool> holder_t;
    holder_t holder;

    for (size_t i=0; i<len; i++)
    {
        if (holder.find(p) != holder.end())
            return (p + i);
        holder.insert(holder_t::value_type(p, true));
    }
    throw std::exception("no dups");
}

int main()
{
    int arr[] = {1,2,3,4,1};
    const size_t len = sizeof(arr) / sizeof(arr[0]);
    std::cout << *find_dup(arr, len) << std::endl;
    return (0);
}
11K
19 марта 2009 года
Babandr
76 / / 05.05.2008
Rififi, ну ты даешь :D
Судя по первому посту, человек толком не знаком с языком, а ты ему даешь решение с STL.
Еще бы буст впарил, ей-богу:) жестоко ты.
240
19 марта 2009 года
aks
2.5K / / 14.07.2006
Да причем тут буст, приведенные тут срества STL все же входят стандартнаую либу языка. А буст пока нет. )
87
19 марта 2009 года
Kogrom
2.7K / / 02.02.2008
Думаю, мап тут не нужен...
Код:
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int arr[] = {1,3,4,2,1};
    int *arrEnd = arr + 5;
    sort(arr, arrEnd);
    int *p = adjacent_find(arr, arrEnd);
    if(p < arrEnd)
        cout << *p << endl;
    return 0;
}


Добавлено позже:
Ну, массив я перемешал и позиции не показал. Но таких условий конкретно не было :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог