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

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

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

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

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

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

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

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) - C++
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

Массив: Все элементы массива, кратные трем, записать в одномерный массив. - C++
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.

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

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Переписать произвольный одномерный массив в другой массив в обратном порядке - C++
Помогите написать прогу, вот задание. Переписать произвольный одномерный массив в другой массив в обратном порядке.

Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив - C++
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив. #include <iostream> using namespace std; ...

10
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 22:52 #2
Перебором. Если массивы отсортировать, то немного по другому можно
0
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);
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 23:06 #4
anzhelika, А если самое близкое приближение x[i]+y[j] к q равно 0,001 или чуть больше?
0
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);
0
valeriikozlov
Эксперт С++
4670 / 2496 / 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;
Что выдаст Ваша программа?
0
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);
}
0
valeriikozlov
Эксперт С++
4670 / 2496 / 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
0
anzhelika
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 31
24.11.2010, 23:56 #9
q и eps можно задать максимальными, сколько вмещает тип дабл. извините, цифр этих я не помню
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2010, 23:59 #10
anzhelika, я так думаю, что числа k, n, q и значения элементов массивов должны вводится с клавиатуры.
Проще всего eps=fabs(x[0]+y[0]-q);
а потом делать перебор элементов обоих массивов.
0
anzhelika
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 31
25.11.2010, 00:09 #11
valeriikozlov, вы, конечно, думаете глобально,всё предусматриваете. но для таких типовых задач требуется решение. а уж то, что q задано в программе, а не с клавиатуры - ерунда. приведение к идеалу - дело 2х минут
eps=fabs(x[0]+y[0]-q); - согласна, так проще.
0
25.11.2010, 00:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2010, 00:09
Привет! Вот еще темы с ответами:

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

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массив - C++
Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массива;

Сформировать одномерный массив, удалить первый элемент с заданным значением, сдвинуть массив циклически - C++
1)сформировать одномерный массив целых чисел 2)удалить первый элемент с заданным значением 3)сдвинуть массив циклически на К элементов...


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

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

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