21

Re: Наближеність чисел

koala написав:

Ні, віднімання модулів вам нічого не дасть.
І на питання про вираз я вже відповідав.

так, але я не розумію, що саме має бути в тому виразі
умову можна так записати if (abs(min)>abs(k-a))

22

Re: Наближеність чисел

min у вас - це найкраще з попередніх значень a, а отже, порівнювати треба не його, а його відстань до k.

23

Re: Наближеність чисел

хоча стоп.. перше ми шукаємо відстань від к до а, тоді кожне число а перевіряємо чи є воно найближчим до к.. потім перевіряємо умову в циклі, якщо відстань є більшою за першу відстань, то тоді все спочатку.. тепер я розумію, що ми можемо ввести ще одну змінну для того, щоб витягнути потрібне число з послідовності..
тому перед циклом прописуємо, що min=k-a; c=a; де мін - відстань, а с - наближене значення, відповідно в циклі буде

 if (abs(min)>abs(k-a))
        {
            c=a;
            min=k-a;
        }
А в загальному код буде так виглядати:
#include <iostream>
#include <stdio.h>
#include <locale>
#include <math.h>
int main()
{
    setlocale(LC_CTYPE, "ukr");
    unsigned int i, n;
    double k, a;
    printf("Введiть n=");
    scanf_s("%u", &n);
    printf("Введiть k=");
    scanf_s("%lf", &k);
    double min,c;
    printf("Ввести 1 число:");
    scanf_s("%lf", &a);
    min=k-a;
    c=a;
    for (i = 2; i <= n; i++)
    {
        printf("Ввести %i число:", i);
        scanf_s("%lf", &a);
        if (abs(min)>abs(k-a))
        {
            c=a;
            min=k-a;
        }
    }
    printf("Наближене значення: %f\n", c);
    system("pause");        
    return 0;
}

24

Re: Наближеність чисел

koala написав:

Відстань не буває від'ємною.

Ви нічого не переплутали ?
Якщо ви це серйозно, то я буду змушений переконати вас, що відстань може бути від'ємною.

25

Re: Наближеність чисел

треба модуль, щоб відстань не була від'ємною

26

Re: Наближеність чисел

Akos_Bond написав:

треба модуль, щоб відстань не була від'ємною

треба модуль, щоб виконати одне порівняння замість двох.

27

Re: Наближеність чисел

ага, логічно.. я використала модуль, тому порівнювала лише раз, без модуля треба було б два рази порівнювати.. але попердній мій код цього разу вже правильно вийшов?

28

Re: Наближеність чисел

leofun01 написав:
koala написав:

Відстань не буває від'ємною.

Ви нічого не переплутали ?
Якщо ви це серйозно, то я буду змушений переконати вас, що відстань може бути від'ємною.

Ні, нічого, якщо мова не йде про якусь дуже специфічну величину з-поза класичної метричної теорії, на кшталт псевдоріманівих многовидів
https://en.wikipedia.org/wiki/Distance#General_metric

Подякували: leofun011

29

Re: Наближеність чисел

Akos_Bond,

abs(min-k)==abs(a-k)
Подякували: Akos_Bond1

30

Re: Наближеність чисел

мдаа... дійсно... я щось затупила на цьому.. аж тепер мені все пішло і головне, що мені все ясно.. дякую за допомогу))

31

Re: Наближеність чисел

koala написав:

Akos_Bond,

abs(min-k)==abs(a-k)

я не  розумію чого, але з даною умовою чи попередньою програма працює некоректно.. вона виводить тільки перше число, яке ми вводимо, у результаті.. моя викладачка з оп не дивлячись, що буде в результаті сказала, що це неправильно, адже в умові порівнювати не можна..

32

Re: Наближеність чисел

Звісно. Ця умова містить очевидну помилку, але оскільки вам усе було ясно, я не став її виправляти.