1

Тема: Помилка в коді, відповідь завжди нуль

Добрий день, будь-ласка допоможіть знайти помилку. Відповідь завжди нуль.

/* lr03_v01.c */
#include <stdio.h>
#include <conio.h>
#include <time.h>
#define _USE_MATH_DEFINES
#include <math.h>

main()
{
    double y,x,a;
    double pi;
    pi = 3, 14;
    printf("y=");
    scanf_s("%i", &y);
    printf("x=");
    scanf_s("%i", &x);
    a = abs((pow(sin(x), 3) * abs(3 * pow(x, 3) + 2 * pow(y, 2) - 6)) / (sqrt(pow((3 * pow(x, 3) + 2 * pow(2, y) - 6), 2)+pi))); //тут помилка
    printf("a= %lf \n", a);
 
    _getch();
    return 0;
}
Post's attachments

Screenshot 2021-03-20 145102.png 2.71 kb, 4 downloads since 2021-03-20 

2 Востаннє редагувалося tchort (20.03.2021 16:41:09)

Re: Помилка в коді, відповідь завжди нуль

Тут крапка має бути, не кома.

 pi = 3, 14;

3

Re: Помилка в коді, відповідь завжди нуль

Прибрав, але помилка у записі формули то... Я зовсім не розумію, де помилка. Без запису модулю рахує, а з модулем відповідь завжди нуль.

4 Востаннє редагувалося tchort (20.03.2021 16:50:35)

Re: Помилка в коді, відповідь завжди нуль

Там же наче має бути f для float а не i в scanf_s ?

%f

Бо на моїй стороні все працює з цим.

int main()
{
    double y=6.2,x=4.1124,a=0;
    double pi;
    pi = 3.14;
    a = abs((pow(sin(x), 3) * abs(3 * pow(x, 3) + 2 * pow(y, 2) - 6)) / (sqrt(pow((3 * pow(x, 3) + 2 * pow(2, y) - 6), 2)+pi)));
    printf("a= %lf \n", a);
    return 0;
}

Вивід: a= 0.449415

5

Re: Помилка в коді, відповідь завжди нуль

Це я також виправив, а як формулу виправити? В чому помилка?

6

Re: Помилка в коді, відповідь завжди нуль

У C немає перевантаження функцій. Відповідно, функція abs працює з int, labs - з long int, fabs - із double і т.д. Вам потрібна остання.

Подякували: kerimov_e, tchort2

7

Re: Помилка в коді, відповідь завжди нуль

В мене вивід все одно нуль, хоча я скопіював ваш код:

#include <stdio.h>
#include <conio.h>
#include <time.h>
#define _USE_MATH_DEFINES
#include <math.h>
int main()
{
    double y = 6.2, x = 4.1124, a = 0;
    double pi;
    pi = 3.14;
    a = abs((pow(sin(x), 3) * abs(3 * pow(x, 3) + 2 * pow(y, 2) - 6)) / (sqrt(pow((3 * pow(x, 3) + 2 * pow(2, y) - 6), 2) + pi)));
    printf("a= %lf \n", a);
    return 0;
}

8

Re: Помилка в коді, відповідь завжди нуль

Коала, дякую! Виправив abs на fabs тепер все працює!

9 Востаннє редагувалося tchort (20.03.2021 17:01:03)

Re: Помилка в коді, відповідь завжди нуль

**Вибачте, моя вина, то я в себе використав g++ ...вічно забуваю зберегти як .c замість .cpp.

10

Re: Помилка в коді, відповідь завжди нуль

tchort написав:

**Вибачте, моя вина, то я в себе використав g++ ...вічно забуваю зберегти як .c замість .cpp.

Не ваша. Автор не вказав мову, а коментар не означає нічого.