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

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

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

одномерный массив. - C++

24.11.2010, 22:48. Просмотров 772. Ответов 10
Метки нет (Все метки)

Даны два массива x содержащий k элементов и y содержащий n элементов и число q. Найти сумму вида x[i]+y[j], наиболее близкую к числу q.

напишите только как найти сумму x[i]+y[j] наиболее близкое к q...
заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 22:48     одномерный массив.
Посмотрите здесь:

C++ одномерный массив А
одномерный массив C++
одномерный массив C++
Одномерный массив C++
одномерный массив C++
Одномерный массив C++
C++ Одномерный массив.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 22:52     одномерный массив. #2
Перебором. Если массивы отсортировать, то немного по другому можно
anzhelika
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 31
24.11.2010, 23:02     одномерный массив. #3
C++
1
2
3
4
for (int i=0;i<k;i++)
    for (int j=0;j<n;j++)
        if(fabs(x[i]+y[j]-q)<0.001)
            printf("summa elementov x[%d] + y[%d] naibolee priblezhena k q", i,j);
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 23:06     одномерный массив. #4
anzhelika, А если самое близкое приближение x[i]+y[j] к q равно 0,001 или чуть больше?
anzhelika
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 31
24.11.2010, 23:28     одномерный массив. #5
Цитата Сообщение от valeriikozlov Посмотреть сообщение
anzhelika, А если самое близкое приближение x[i]+y[j] к q равно 0,001 или чуть больше?
C++
1
2
3
4
5
6
7
8
9
10
11
double eps=100000;
int ii, jj;
for (int i=0;i<k;i++)
    for (int j=0;j<n;j++)
        if(fabs(x[i]+y[j]-q)<eps)
        {
            eps=fabs(x[i]+y[j]-q);
            ii=i;
            jj=j;
        }
printf("summa elementov x[%d] + y[%d] naibolee priblezhena k q", ii,jj);
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 23:34     одномерный массив. #6
anzhelika, мне немного смешно писать, но:
дан массив: x[]: 1 2 3 4 5 6 7 8 9 10
y[]: 10 9 8 7 6 5 4 3 2 1
q=200000;
Что выдаст Ваша программа?
anzhelika
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 31
24.11.2010, 23:48     одномерный массив. #7
Цитата Сообщение от valeriikozlov Посмотреть сообщение
anzhelika, мне немного смешно писать, но:
дан массив: x[]: 1 2 3 4 5 6 7 8 9 10
y[]: 10 9 8 7 6 5 4 3 2 1
q=200000;
Что выдаст Ваша программа?
вам то смешно, конечно.
у меня всё работает например.
да и потом, нечего смеяться над человеком, который всему этому еще только учится.

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
#include<stdio.h>
#include<math.h>
void main()
{
    int k=4;
    int n=4;
    double *x=new double[k];
    double *y=new double[n];
    double q=4;
    double eps=100000;
    for (int i=0;i<k;i++)
        scanf("%lf",&x[i]);
     for (int j=0;j<n;j++)
        scanf("%lf",&y[j]);
    int ii, jj;
    for (int i=0;i<k;i++)
        for (int j=0;j<n;j++)
                if(fabs(x[i]+y[j]-q)<eps)
                {
                        eps=fabs(x[i]+y[j]-q);
                        ii=i;
                        jj=j;
                }
printf("summa elementov x[%d] + y[%d] naibolee priblezhena k q\n", ii,jj);
}
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 23:54     одномерный массив. #8
anzhelika, я парирую:
в массив x[4], я введу значения: 200000, 400000, 600000, 800000;
в массив y[4], я введу значения: 1000000, 1200000, 1400000, 1600000
anzhelika
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 31
24.11.2010, 23:56     одномерный массив. #9
q и eps можно задать максимальными, сколько вмещает тип дабл. извините, цифр этих я не помню
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 23:59     одномерный массив. #10
anzhelika, я так думаю, что числа k, n, q и значения элементов массивов должны вводится с клавиатуры.
Проще всего eps=fabs(x[0]+y[0]-q);
а потом делать перебор элементов обоих массивов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2010, 00:09     одномерный массив.
Еще ссылки по теме:

Одномерный массив C++
Одномерный массив C++
C++ Одномерный массив
Одномерный массив C++
C++ Одномерный массив

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

Или воспользуйтесь поиском по форуму:
anzhelika
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 31
25.11.2010, 00:09     одномерный массив. #11
valeriikozlov, вы, конечно, думаете глобально,всё предусматриваете. но для таких типовых задач требуется решение. а уж то, что q задано в программе, а не с клавиатуры - ерунда. приведение к идеалу - дело 2х минут
eps=fabs(x[0]+y[0]-q); - согласна, так проще.
Yandex
Объявления
25.11.2010, 00:09     одномерный массив.
Ответ Создать тему
Опции темы

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