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

Для каждого из K чисел выведите в отдельную строку число из первого массива, наиболее близкое к данному - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Клиент-сервер - организовать передачу файлов http://www.cyberforum.ru/cpp-beginners/thread1228491.html
Написал программу клиент - сервер и хотел бы её модернизировать, но ни хватает знаний и практики. Вот что хотелось бы добавить: 1)в примерах нашёл, что и сервера можно отправлять файлы клиентам, но там надо переключать (слушать, пронимать). Можно прописать так чтобы он слушал и отправлял файлу (автоматически) клиенту; 2)сделать таймер событий, проверять все пришедшие файлы, смотреть на дату...
C++ Разделить строку на две части дана задача.есть переменная char = россия. надо разделить её на две части так,чтобы получилось что a = рос,b=сия http://www.cyberforum.ru/cpp-beginners/thread1228489.html
C++ Вывести части строки до определенных символов
Помогите мне с задачкой. Дана строка, нужно разделить ее на несколько частей до определенных символов (или не обязательно именно так). Вот задачка, чтобы вам было понятней: In the early nineties, the World Wide Web (WWW) was invented. Nowadays, most people think that the WWW simply consists of all the pretty (or not so pretty) HTML-pages that you can read with your WWW browser. But back then,...
Какое отношение имеет перегрузка к полиморфизму? C++
прочитал в одном учебнике: (глава посвящена функциям. Подраздел: Перегрузка функций) "В результате перегрузки функций происходит явление, называемое полиморфизмом функций. Полиморфная функция - это функция, отличающаяся многообразием форм." Ну и дальше по тексту термины перегруженная функция и полиморфная функция (а также перегрузка ф-ций и полиморфизм ф-ций) используются как синонимы. в...
C++ Месса. Подсчитать общее количество рукопожатий. http://www.cyberforum.ru/cpp-beginners/thread1228454.html
Хорошей частью Римской католической мессы является обряд мира, когда люди обмениваются рукопожатием со своими соседями и говорят: "мир вам". Мирко нашел способ превратить этот ритуал в свою пользу. Внутри церкви есть R рядов скамеек, в каждом ряду может сидеть не более S человек. Мы можем представить это как матрицу R х S, где каждый элемент представляет собой либо человека или пустое место....
C++ Given a series of numbers, your task is to pick up some numbers на acm.tju.edu.cn задача 2231 Нарушение правила п 5.19 Запрещено создавать темы в виде ссылок на задания или коды программ, расположенные на других сайтах. подробнее

Показать сообщение отдельно
shatov05
0 / 0 / 0
Регистрация: 09.03.2014
Сообщений: 14
17.07.2014, 12:47     Для каждого из K чисел выведите в отдельную строку число из первого массива, наиболее близкое к данному
Задание:
В первой строке входных данных содержатся числа N и K (0NK100001). Во второй строке задаются N чисел первого массива, отсортированного по неубыванию, а в третьей строке – K чисел второго массива. Каждое число в обоих массивах по модулю не превосходит 2109.

Для каждого из K чисел выведите в отдельную строку число из первого массива, наиболее близкое к данному. Если таких несколько, выведите меньшее из них.
Пример:

Входные данные:
5 4
1 4 5 8 10
5 6 1 9

Выходные данные:
5
5
1
8

http://informatics.mccme.ru/mod/stat...w.php?id=192#1 - Это задача


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
#include <iostream>
using namespace std;
const int n = 5 ; //двоичный поиск
int BinarySearch(int a[], int key)
{
    int left = 0, right = n, mid;
    while (left <= right)
    {
        mid = left + (right - left)/2;
        if (key < a[mid]) right = mid-1;
        else if (key > a[mid]) left = mid+1;
        else return mid;
    }
    return -1;
}
//главная функция
void main()
{
    setlocale(LC_ALL,"Rus");
    int i, key, k, n;
    int a[100001], b[100001];
    cin >> n >> k;
    cout<<"Первый массив: ";
    for (i = 0; i < n; i++) //заполнение и вывод массива
    { cin >> a[ i ]; }
    cout<<"Второй массив: ";
    for (int j = 0; j < k; j++){
        cin >> b[ j ];} 
        for ( int j = 0; j < k; j++)   {
            key = b[ j ] ; 
              for ( int i = 0; i < n; i++){ 
    if (BinarySearch(a, key)==-1) cout<<"\nЭлемент не найден";
    else cout<<"\nНомер элемента: "<<BinarySearch(a, key)+1;}}
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru