Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Abdull2401
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 38
#1

Отнесение значение - C++

28.03.2014, 13:27. Просмотров 367. Ответов 17
Метки нет (Все метки)

Здравствуйте у меня проблемка с задачкой, суть моей задачи заключается чтобы введенное любое значение "х" сравнивалось со значениями которые находятся в массиве, и если же допустим a[i]={1,2,3,4,5}
b[i]={6,7,8,9,10} введенное значение "х=4" то тогда по идее он относится к массиву a[i] так как значение ближе к a[i] элементам...
получается мне надо чтобы введенное значение было отнесено либо к a[i] либо b[i]...

C++
1
2
3
4
5
6
7
8
9
10
11
int a[10], b[10],i,x,n;
printf("vvebidte dinnuie");
scanf("%d",n);
for(i=1;i<n;i++)
 scanf("%d",a[i]);
for(i=1;i<n;i++)
 scanf("%d",b[i]);\
printf("vvedite zna4enie");
for(i=1;i<n;i++)
 if (a[i]<=x) printf("prinadlejit massivu A");
 else (b[i]<=x) printf("prinadlejit massivu A");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2014, 13:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отнесение значение (C++):

Найти значение 3-го по величине элемента и значение всех элементов массива, которые его превышают, заменить на найденное значение
Работа с массивами:

В одномерном массиве определить среднее значение всех элементов,значение которых превышает среднее значение
в произвольно заданном одномерном массиве определить среднее значение всех...

Вывести на экран значение t при котором функция x(t) принимает максимальное значение
Объясните, как решить с помощью массива. Только начал изучать C++. Знаю, как...

Вычислить среднеарифметическое значение элементов массива и определить минимальное положительное значение
Необходимо сформировать двумерный массив A(3x9), используя генератор случайных...

Укажите значение (в байтах), на которое изменится значение, хранящее в указателе p
Пусть заданы int a=5; int * p=&amp;a; Укажите значение (в байтах), на...

Вычислить значение аргумента x, значение функции y, max и min функций
где диапазон изменения аргумента -2 &lt;= x &lt;=3 , шаг 0,1

17
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
28.03.2014, 13:35 #2
C++
1
printf("vvedite zna4enie");
Это очень мило, но где запись значения в переменную?
0
Abdull2401
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 38
28.03.2014, 13:37  [ТС] #3
Тамика, аа вот ща
C++
1
2
3
4
5
6
7
8
9
10
11
12
int a[10], b[10],i,x,n;
printf("vvebidte dinnuie");
scanf("%d",n);
for(i=1;i<n;i++)
 scanf("%d",a[i]);
for(i=1;i<n;i++)
 scanf("%d",b[i]);\
printf("vvedite zna4enie");
scanf("%d",x);
for(i=1;i<n;i++)
 if (a[i]<=x) printf("prinadlejit massivu A");
 else (b[i]<=x) printf("prinadlejit massivu A");
0
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,112
Завершенные тесты: 1
28.03.2014, 13:39 #4
Тамика,
Цитата Сообщение от Abdull2401 Посмотреть сообщение
C++
1
scanf("%d",n);
не тут ли?
только надо
C++
1
scanf("%d",&n);
Добавлено через 1 минуту
Abdull2401,
Цитата Сообщение от Abdull2401 Посмотреть сообщение
C++
1
scanf("%d",n);
Цитата Сообщение от Abdull2401 Посмотреть сообщение
C++
1
scanf("%d",a[i]);
Цитата Сообщение от Abdull2401 Посмотреть сообщение
C++
1
scanf("%d",b[i]);
C++
1
2
3
scanf("%d",&n);
scanf("%d",&a[i]);
scanf("%d",&b[i]);
0
Abdull2401
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 38
28.03.2014, 13:40  [ТС] #5
aLarman, "&n" и "n" в чем разница?!
0
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,112
Завершенные тесты: 1
28.03.2014, 13:40 #6
в том что scanf принимает адрес переменной куда надо вести запись, n переменная, &n ее адрес
0
Abdull2401
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 38
28.03.2014, 13:42  [ТС] #7
aLarman, ясно, но я правильно написал условие??
0
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,112
Завершенные тесты: 1
28.03.2014, 13:42 #8
Цитата Сообщение от Abdull2401 Посмотреть сообщение
for(i=1;i<n;i++) if (a[i]<=x) printf("prinadlejit massivu A"); else (b[i]<=x) printf("prinadlejit massivu A");
думаю это не так должно выглядеть
Цитата Сообщение от Abdull2401 Посмотреть сообщение
так как значение ближе к a[i] элементам...
скорее Вам надо сравнивать разницу введенного числа и элементов массива, и искать где эта разница минимальна, в массиве а или b
0
Abdull2401
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 38
28.03.2014, 13:44  [ТС] #9
aLarman, а как это возможно сделать?!
0
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
28.03.2014, 13:47 #10
Цитата Сообщение от aLarman Посмотреть сообщение
не тут ли?
При чем здесь это? Я о переменной х, которую далее сравнивают, но в ней нет значения. Мусор.
0
Abdull2401
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 38
28.03.2014, 13:50  [ТС] #11
Тамика, извините а "scanf("%d,&x");" разве я значение не задаю "х"??
0
aLarman
644 / 565 / 164
Регистрация: 13.12.2012
Сообщений: 2,112
Завершенные тесты: 1
28.03.2014, 13:51 #12
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
int a[10], b[10],i,x,n;
printf("vvebidte dlinu");//не лучший вариант заполнять массив n значениями учитывая что максимальный размер массива 10 ну ладно пусть так
scanf("%d",&n);
for(i=0;i<n;i++)
 scanf("%d",&a[i]);
for(i=0;i<n;i++)
 scanf("%d",&b[i]);
printf("vvedite zna4enie");
scanf("%d",&x);
int delta = std::numeric_limit<int>::max();
bool isArrayA = true;
for(i=0;i<n;i++)
{
if(abs(a[i]-x)<delta)
{
delta = abs(a[i]-x);
isArrayA = true;
}
 
if(abs(b[i]-x)<delta)
{
delta = abs(b[i]-x);
isArrayA = false;
}
}
if(isArrayA)
{
printf("prinadlejit massivu A");
}
else
{
printf("prinadlejit massivu B");
}
может быть так
0
SatanaXIII
Супер-модератор
Эксперт С++
5766 / 2764 / 374
Регистрация: 01.11.2011
Сообщений: 6,717
Завершенные тесты: 1
28.03.2014, 13:52 #13
Цитата Сообщение от Abdull2401 Посмотреть сообщение
извините а "scanf("%d,&x");" разве я значение не задаю "х"?
А разве она о вашем коде говорила?
1
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
28.03.2014, 13:54 #14
Цитата Сообщение от Abdull2401 Посмотреть сообщение
Тамика, извините а "scanf("%d,&x");" разве я значение не задаю "х"??
В первичном коде - нет. А aLarman говорил о первичном коде. Якобы магичным чудом записав значение в переменную n оно занесется в переменную х. Вот я и написала, что речь шла о х.
0
Abdull2401
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 38
28.03.2014, 13:59  [ТС] #15
SatanaXIII, ааа точно))) че то подумал она о моем коде)))
0
Abdull2401
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 38
29.03.2014, 08:53  [ТС] #16
aLarman, задача работает но преподаватель сказал не совсем так надо было сделать,
она мне объяснила так:
на рисунке показано имеется значение "Х" и "О" если ввести переменную "квадратик ХД" то к какому он значению ближе к тому и должен принадлежать... а в который показывал задаче не совсем так выполняется там разница маленькая...
0
Миниатюры
Отнесение значение  
Abdull2401
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 38
29.03.2014, 08:56  [ТС] #17
aLarman, я как понял нужно сравнивать по такой формуле
C++
1
sqrt(pow(x-x1,2)+pow(x-x2,2))???
0
zss
Модератор
Эксперт С++
6959 / 6521 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
29.03.2014, 11:29 #18
Нужно сначала определить центры множеств.
C++
1
2
3
4
5
6
7
8
double ca=0;
for(i=1;i<n;i++)
    ca+=a[i];
ca/=n;
double cb=0;
for(i=1;i<m;i++)
 cb+=b[i];
cb/=m;
А теперь сравниваем
C++
1
2
3
4
if(fabs(x-ca)<fabs(x-cb))
    printf("prinadlejit massivu A");
else
    printf("prinadlejit massivu B");
0
29.03.2014, 11:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2014, 11:29
Привет! Вот еще темы с решениями:

Найти наименьшее положительное значение функции и соответствующее значение аргумента
как найти наименьшее положительное значение функции и соответствующий х? (т.е....

Определить, является ли введенное значение года високосным, если введено корректное значение
Определить, является ли введенное значение года високосным, если введено...

Найти наименьшее значение функции и значение аргумента, при котором оно получено
Для заданного набора коэффициентов a, b, c, d найдите наименьшее значение...

Ввести с клавиатуры вещественное (double) значение x, вывести соответствующее значение y для функции y = f(x)
Всем привет! Нужна помощь в решение данной задач... Буду очень признателен :) ...


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

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

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